У меня установлена очередь JMS HornetQ на JBoss EAP6 в файле standalone.xml.
<hornetq-server>
[...]
<jms-connection-factories>
<connection-factory name="RemoteConnectionFactory">
<connectors>
<connector-ref connector-name="netty"/>
</connectors>
<entries>
<entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>
</entries>
</connection-factory>
</jms-connection-factories>
<jms-destinations>
<jms-queue name="WorkflowExecution">
<entry name="/queue/MyQueue"/>
<entry name="java:jboss/exported/queue/MyQueue"/>
</jms-queue>
</jms-destinations>
</hornetq-server>
Очередь работает нормально, и я могу отправлять на нее сообщения, используя такие инструменты, как Hermes JMS.
Я работаю над автономным клиентским приложением, работающим в Fuse 4.4, которое имеетотправить сообщение в очередь по маршруту Camel, но я не могу понять, как установить соединитель в конфигурации.
Это то, что я пытался установить в файле camel-context.xml:
<bean id="jmsinjection" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory">
<bean class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jms/RemoteConnectionFactory" />
<property name="jndiEnvironment">
<props>
<prop key="java.naming.provider.url">remote://myEAPurl:port</prop>
<prop key="java.naming.factory.initial">org.jboss.naming.remote.client.InitialContextFactory</prop>
</props>
</property>
</bean>
</property>
</bean>
И полученное исключение:
Ошибка создания компонента с именем 'jmsinjection', определенным в URL [bundle: //79.37: 0 / META-INF / spring / camel-context.xml]: сбой инициализации компонента;вложенным исключением является org.springframework.beans.ConversionNotSupportedException: не удалось преобразовать значение свойства типа 'org.hornetq.jms.client.HornetQJMSConnectionFactory' в требуемый тип 'javax.jms.ConnectionFactory' для свойства 'connectionFactory';вложенным исключением является java.lang.IllegalStateException: невозможно преобразовать значение типа [org.hornetq.jms.client.HornetQJMSConnectionFactory] в требуемый тип [javax.jms.ConnectionFactory] для свойства 'connectionFactory': не найдено соответствующих редакторов или стратегии преобразования
Согласно javadoc, HornetQJMSConnectionFactory
реализует javax.jms.QueueConnectionFactory
, который расширяет javax.jms.ConnectionFactory
, поэтому я не понимаю, почему я получаю это исключение.
Я потратил часы на утилизацию форума JBoss идок, но не могу найти способ заставить его работать.
Что не так в моей конфигурации верблюда?Как это исправить?