Я пытаюсь установить соединение с JMS, используя Apache Camel, сервер использует протокол Jnp. Но при этом я получаю исключения. Нужно помогите, если я что-то упускаю или делаю что-то не так. У меня есть JMS API jar-зависимость в pom.
Стек технологий:
Чертеж:
<bean class = "org.springframework.jndi.JndiTemplate"
id = "remoteJndiTemplate">
<property name = "environment">
<props>
<prop key = "java.naming.provider.url">jnp://x.x.x.x:yyyy</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 class = "org.springframework.jndi.JndiObjectFactoryBean"
id = "remoteConnectionFactory" init-method = "afterPropertiesSet">
<property name = "jndiTemplate" ref = "remoteJndiTemplate"/>
<property name = "jndiName" value = "ConnectionFactory"/>
<property name = "lookupOnStartup" value = "false"/>
<!-- <property name = "proxyInterface" value = "javax.jms.QueueConnectionFactory"/> -->
<property name = "expectedType" value = "javax.jms.QueueConnectionFactory"/>
</bean>
<bean factory-method = "getObject"
factory-ref = "remoteConnectionFactory" id = "jmsInConnectionFactory"/>
<bean class = "org.apache.camel.component.jms.JmsComponent" id = "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: Unable to initialize bean remoteConnectionFactory
Caused by: java.lang.IllegalArgumentException: interface javax.jms.QueueConnectionFactory is not visible from class loader




jnp - это служба именования JNDI, используемая в JBoss ». Я думаю, что приведенный ниже тестовый пример может помочь вам в дальнейшем. activemq-unit с использованием Spring JNDI
Касательно
java.lang.IllegalArgumentException: interface javax.jms.QueueConnectionFactory is not visible from class loader
это похоже на другую проблему.