Java 使用ApacheCamel的JMS/JNP连接

Java 使用ApacheCamel的JMS/JNP连接,java,apache-camel,jms,jbossfuse,jnp,Java,Apache Camel,Jms,Jbossfuse,Jnp,我试图使用ApacheCamel与JMS建立连接,服务器使用JNP协议,但总是以异常结束。 这里需要帮助,我是不是错过了什么或者做错了什么 技术堆栈。 JBoss保险丝6.3 ApacheCamel(用于集成) 蓝图: <bean id="remoteJndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <pro

我试图使用ApacheCamel与JMS建立连接,服务器使用JNP协议,但总是以异常结束。 这里需要帮助,我是不是错过了什么或者做错了什么

技术堆栈。

  • JBoss保险丝6.3
  • ApacheCamel(用于集成)
蓝图:

<bean id="remoteJndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
        <props>
            <prop key="java.naming.provider.url">jnp://X.X.X.X:1099</prop>
            <prop key="java.naming.factory.url.pkgs">org.jnp.interfaces:org.jboss.naming</prop>
            <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
        </props>
    </property>
</bean>
<bean id="remoteConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"  init-method="afterPropertiesSet">
    <property name="jndiTemplate" ref="remoteJndiTemplate"/>
    <property name="jndiName" value="ConnectionFactory" />
    <property name="lookupOnStartup" value="false" />
    <property name="proxyInterface" value="javax.jms.ConnectionFactory" />
</bean>
<bean id="jmsInConnectionFactory" factory-ref="remoteConnectionFactory" factory-method="getObject" />
<bean id="jmsComponent" class="org.apache.camel.component.jms.JmsComponent">
    <property name="configuration">
        <bean class="org.apache.camel.component.jms.JmsConfiguration">
            <property name="connectionFactory" ref="jmsInConnectionFactory"/>
        </bean>
    </property>
</bean>
org.osgi.service.blueprint.container.ComponentDefinitionException: Error setting property: PropertyDescriptor <name: expectedType, getter: class org.springframework.jndi.JndiObjectLocator.getExpectedType(), setter: [class org.springframework.jndi.JndiObjectLocator.setExpectedType(class java.lang.Class)]
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:963)[23:org.apache.aries.blueprint.core:1.4.5]
Caused by: java.lang.Exception: Unable to convert
at org.apache.aries.blueprint.container.AggregateConverter.convertFromString(AggregateConverter.java:252)[23:org.apache.aries.blueprint.core:1.4.5]
Caused by: java.lang.ClassNotFoundException: javax.jms.QueueConnectionFactory not found by IDC-mnp-npg [294]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)[org.apache.felix.framework-4.4.1.jar:]

jnp://X.X.X.X:1099
接口:org.jboss.naming
org.jnp.interfaces.NamingContextFactory
例外情况:

<bean id="remoteJndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
        <props>
            <prop key="java.naming.provider.url">jnp://X.X.X.X:1099</prop>
            <prop key="java.naming.factory.url.pkgs">org.jnp.interfaces:org.jboss.naming</prop>
            <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
        </props>
    </property>
</bean>
<bean id="remoteConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"  init-method="afterPropertiesSet">
    <property name="jndiTemplate" ref="remoteJndiTemplate"/>
    <property name="jndiName" value="ConnectionFactory" />
    <property name="lookupOnStartup" value="false" />
    <property name="proxyInterface" value="javax.jms.ConnectionFactory" />
</bean>
<bean id="jmsInConnectionFactory" factory-ref="remoteConnectionFactory" factory-method="getObject" />
<bean id="jmsComponent" class="org.apache.camel.component.jms.JmsComponent">
    <property name="configuration">
        <bean class="org.apache.camel.component.jms.JmsConfiguration">
            <property name="connectionFactory" ref="jmsInConnectionFactory"/>
        </bean>
    </property>
</bean>
org.osgi.service.blueprint.container.ComponentDefinitionException: Error setting property: PropertyDescriptor <name: expectedType, getter: class org.springframework.jndi.JndiObjectLocator.getExpectedType(), setter: [class org.springframework.jndi.JndiObjectLocator.setExpectedType(class java.lang.Class)]
at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:963)[23:org.apache.aries.blueprint.core:1.4.5]
Caused by: java.lang.Exception: Unable to convert
at org.apache.aries.blueprint.container.AggregateConverter.convertFromString(AggregateConverter.java:252)[23:org.apache.aries.blueprint.core:1.4.5]
Caused by: java.lang.ClassNotFoundException: javax.jms.QueueConnectionFactory not found by IDC-mnp-npg [294]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)[org.apache.felix.framework-4.4.1.jar:]

org.osgi.service.blueprint.container.ComponentDefinitionException:错误设置属性:PropertyDescriptor根据根目录,您的类路径上缺少JMS API jar,原因是异常:

原因:java.lang.ClassNotFoundException:IDC mnp npg未找到javax.jms.QueueConnectionFactory