JBoss Fuse / REST DSL - Почему мои модификации (для использования IBM MQ) не работают?

ПРЕДЫСТОРИЯ: Я собрал относительно компактный пример JBossFuse, REST-DSL (из разрозненных сообщений / статей), который направляется в очередь ActiveMQ (см. рабочий пример ниже).

ПРОБЛЕМА: вместо этого я хочу выполнить маршрутизацию в очередь IBM MQ.

ВОПРОС: Что мне нужно изменить для маршрутизации к IBM MQ вместо ActiveMQ?


Я пробовал следующее ...:

(A) создание пакета поддержки IBM MQ, его развертывание во Fuse и добавление dep. в файл pom.xml приложения

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.ibm</groupId>
        <artifactId>ibm-mq-lib</artifactId>
        <version>9.0.0.0</version>
        <description>ibm-mq-lib</description>
        <packaging>bundle</packaging>

        <dependencies>
        <dependency>
            <groupId>com.ibm.mq.osgi</groupId>
            <artifactId>allclient</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/OSGi/com.ibm.mq.osgi.allclient_9.0.0.0.jar</systemPath>  
            <scope>system</scope>          
        </dependency>
        <dependency>
            <groupId>com.ibm.mq.osgi</groupId>        
            <artifactId>allclientprereqs</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/OSGi/com.ibm.mq.osgi.allclientprereqs_9.0.0.0.jar</systemPath>
            <scope>system</scope>             
        </dependency>
        <dependency>
            <groupId>com.ibm.mq</groupId>          
            <artifactId>allclient</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/JavaSE/com.ibm.mq.allclient.jar</systemPath>
            <scope>system</scope>             
        </dependency>  
        <dependency>
            <groupId>com.ibm.mq</groupId>        
            <artifactId>traceControl</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/JavaSE/com.ibm.mq.traceControl.jar</systemPath>
            <scope>system</scope>             
        </dependency>                     
        <dependency>
            <groupId>com.ibm.mq</groupId>       
            <artifactId>fscontext</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/JavaSE/fscontext.jar</systemPath>
            <scope>system</scope>             
        </dependency>             
        <dependency>
            <groupId>com.ibm.mq</groupId>       
            <artifactId>jms</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/JavaSE/jms.jar</systemPath>
            <scope>system</scope>             
        </dependency>         
        <dependency>
            <groupId>com.ibm.mq</groupId>        
            <artifactId>providerutil</artifactId>
            <version>9.0.0.0</version>
            <systemPath>C:/tools/wmq/JavaSE/providerutil.jar</systemPath>
            <scope>system</scope>             
        </dependency>                 
        </dependencies>
        <build>
        <plugins>
            <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>3.3.0</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
                <Bundle-Name>${project.artifactId}</Bundle-Name>
                <Bundle-Description>description</Bundle-Description>
                <Bundle-Vendor>IBM MQ 9.0.0.0</Bundle-Vendor>
                <Import-Package></Import-Package>
                <Export-Package>*</Export-Package>
                <DynamicImport-Package>*</DynamicImport-Package>
                </instructions>
            </configuration>
            </plugin>
        </plugins>
        </build>
        <name>ibm-mq-lib</name>
    </project>

(B) изменил файл camel-route.xml (добавил следующее)

        ...

        <bean id="connectionFactory"
          class="com.ibm.mq.jms.MQConnectionFactory">
        <property name="transportType" value="1"/>
        <property name="hostName" value="localhost"/>
        <property name="port" value="1414"/>
        <property name="queueManager" value="QM1"/>
        <property name="channel" value="DEV.APP.SVRCONN" />    
        </bean>    
        <bean id="ibmMqConfig" class="org.apache.camel.component.jms.JmsConfiguration">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="concurrentConsumers" value="10"/>    
        </bean>
        <bean id="ibmMq" 
          class="org.apache.camel.component.jms.JmsComponent">
        <property name="configuration" ref="ibmMqConfig"/>         
        </bean>
    </blueprint>

(C) модифицированный файл CamelRestRoutes.java, чтобы он указывал на очередь IBM MQ (вместо очереди ActiveMQ) ...

    ...
    from("direct:thingZ")
            .log("---------------------- (CCC) ----------------------> direct:thingZ...:" + body().toString())
            .to("ibmMq:queue:bubblegum?jmsMessageType=Text&exchangePattern=InOnly");  

Вызов метода getAll в службе REST приводит к исключению со следующим выводом журнала / исключения

    ...
                   WorkQueueMananger Contents
                   --------------------------

    |   Maintain ThreadPool size     :-  false
    |   Maximum ThreadPool size      :-  -1
    |   ThreadPool inactive timeout  :-  0
    |   unavailable -                :-  com.ibm.msg.client.commonservices.CSIException: JMSCS0002

                       Runtime properties
                       ------------------

    |   Available processors         :-  4
    |   Free memory in bytes (now)   :-  737153288
    |   Max memory in bytes          :-  954728448
    |   Total memory in bytes (now)  :-  875036672

                   Component Manager Contents
                   --------------------------

    Common Services Components:
    Messaging Provider Components:
    |   CMVC             :-  p900-L160512.4
    |   Class Name       :-  class com.ibm.msg.client.wmq.factories.WMQComponent
    |   Component Name   :-  com.ibm.msg.client.wmq
    |   Component Title  :-  IBM MQ JMS Provider
    |   Factory Class    :-  class com.ibm.msg.client.wmq.factories.WMQFactoryFactory
    |   Jar location     :-  bundle://530.0:1/com/ibm/msg/client/wmq/factories/WMQComponent.class
    |   Version          :-  9.0.0.0




                 Provider Specific Information
                 -----------------------------

    Overview of JMS System
    Num. Contexts    : 0
    Num. Connections : 0
    Num. Sessions    : 0
    Num. Consumers   : 0
    Num. Producers   : 0

    Detailed JMS System Information
    Contexts      :
    Connections      :
    Sessions         :
    Consumers        :
    Producers        :


    2017-08-08 09:44:57,407 | ERROR | estlet-672518929 | DefaultErrorHandler              | 232 - org.apache.camel.camel-core - 2.17.0.redhat-630187 | Failed delivery for (MessageId: ID-AAXA22A747-53217-1502199741603-0-3 on ExchangeId: ID-AAXA22A747-53217-1502199741603-0-2). Exhausted after delivery attempt: 1 caught: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: null; nested exception is com.ibm.mq.MQException: JMSCMQ0001: JMSCMQ0001, 2, MQCC_FAILED, 2195, MQRC_UNEXPECTED_ERROR

    Message History
    ---------------------------------------------------------------------------------------------------------------------------------------
    RouteId              ProcessorId          Processor                                                                        Elapsed (ms)
    [route1            ] [route1            ] [http://localhost:8182/service/getAll?restletMethods=GET                       ] [      4126]
    [route1            ] [restBinding1      ] [                                                                              ] [         4]
    [route1            ] [route1            ] [direct:thingX                                                                 ] [      4119]
    [route2            ] [to1               ] [bean:camelRestService?method=getAll                                           ] [         7]
    [route2            ] [log1              ] [log                                                                           ] [         1]
    [route2            ] [to2               ] [direct:thingY                                                                 ] [      4110]
    [route3            ] [log2              ] [log                                                                           ] [         1]
    [route3            ] [to3               ] [direct:thingZ                                                                 ] [      4109]
    [route4            ] [log3              ] [log                                                                           ] [         0]
    [route4            ] [to4               ] [ibmMq:queue:mylocalqueue?jmsMessageType=Text&exchangePattern=InOnly           ] [      4109]

    Stacktrace
    ---------------------------------------------------------------------------------------------------------------------------------------
    org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: null; nested exception is com.ibm.mq.MQException: JMSCMQ0001: JMSCMQ0001, 2, MQCC_FAILED, 2195, MQRC_UNEXPECTED_ERROR
        at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)[243:org.apache.servicemix.bundles.spring-jms:3.2.16.RELEASE_2]
        at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)[243:org.apache.servicemix.bundles.spring-jms:3.2.16.RELEASE_2]
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)[243:org.apache.servicemix.bundles.spring-jms:3.2.16.RELEASE_2]
        at org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:452)[244:org.apache.camel.camel-jms:2.17.0.redhat-630187]
        at org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:414)[244:org.apache.camel.camel-jms:2.17.0.redhat-630187]
        at org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:368)[244:org.apache.camel.camel-jms:2.17.0.redhat-630187]
        at org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:154)[244:org.apache.camel.camel-jms:2.17.0.redhat-630187]
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)[232:org.apache.camel.camel-core:2.17.0.redhat-630187]
        at org.apache.camel.component.restlet.RestletConsumer$1.handle(RestletConsumer.java:68)[304:org.apache.camel.camel-restlet:2.17.0.redhat-630187]
        at org.apache.camel.component.restlet.MethodBasedRouter.handle(MethodBasedRouter.java:54)[304:org.apache.camel.camel-restlet:2.17.0.redhat-630187]
        at org.restlet.routing.Filter.doHandle(Filter.java:150)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.handle(Filter.java:197)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Router.doHandle(Router.java:422)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Router.handle(Router.java:639)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.doHandle(Filter.java:150)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.handle(Filter.java:197)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Router.doHandle(Router.java:422)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Router.handle(Router.java:639)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.doHandle(Filter.java:150)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.handle(Filter.java:197)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.doHandle(Filter.java:150)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.routing.Filter.handle(Filter.java:197)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.Component.handle(Component.java:408)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.Server.handle(Server.java:507)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)[303:org.restlet:2.3.6.v20160126-1627]
        at org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:64)[303:org.restlet:2.3.6.v20160126-1627]
        at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)[:1.8.0_131]
        at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)[:1.8.0_131]
        at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)[:1.8.0_131]
        at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)[:1.8.0_131]
        at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)[:1.8.0_131]
        at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)[:1.8.0_131]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_131]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_131]
        at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
    Caused by: com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: null
        at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:595)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:215)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:422)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:8475)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:7814)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl._createConnection(JmsConnectionFactoryImpl.java:299)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:236)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6024)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jms.MQConnectionFactory.createConnection(MQConnectionFactory.java:6049)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184)[243:org.apache.servicemix.bundles.spring-jms:3.2.16.RELEASE_2]
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:456)[243:org.apache.servicemix.bundles.spring-jms:3.2.16.RELEASE_2]
        ... 67 more
    Caused by: com.ibm.mq.MQException: JMSCMQ0001: JMSCMQ0001, 2, MQCC_FAILED, 2195, MQRC_UNEXPECTED_ERROR
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        ... 76 more
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195;AMQ9204: Connection to host 'localhost(1414)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2195],3=localhost(1414),5=JmqiDefaultThreadPool.enqueue]
        at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:2280)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1285)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:355)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        ... 75 more
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195
        at com.ibm.mq.jmqi.JmqiDefaultThreadPool.enqueue(JmqiDefaultThreadPool.java:97)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.impl.RemoteConnection.setUpAsyncMode(RemoteConnection.java:1979)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.impl.RemoteConnection.initSess(RemoteConnection.java:1741)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:863)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:409)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:305)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:146)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1721)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        ... 77 more
    Caused by: com.ibm.msg.client.commonservices.CSIException: JMSCS0002
        at com.ibm.msg.client.commonservices.workqueue.PIWorkQueueManager.enqueueItem(PIWorkQueueManager.java:55)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.enqueue(WorkQueueManager.java:232)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.msg.client.commonservices.workqueue.WorkQueueManager.enqueue(WorkQueueManager.java:200)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        at com.ibm.mq.jmqi.JmqiDefaultThreadPool.enqueue(JmqiDefaultThreadPool.java:79)[530:com.ibm.mq.osgi.allclient:9.0.0.0]
        ... 84 more
    2017-08-08 09:44:57,429 | INFO  | estlet-672518929 | LogService                       | 303 - org.restlet - 2.3.6.v20160126-1627 | 2017-08-08   09:44:57        0:0:0:0:0:0:0:1 -       -       8182    GET     /service/getAll/        -       500     8856    0       4140    http://localhost:8182   Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0  -

Для сравнения / контекста, НИЖЕ, это рабочий проект, который направляется в очередь ActiveMQ ...

Вот структура проекта

Структура проекта camelRest

aaa.bbb.ccc.CamelRestService.java

package aaa.bbb.ccc;

import aaa.bbb.ccc.model.CamelRestPojo;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.core.MediaType;

@Path("/service/")
public class CamelRestService {
    Map<Long, CamelRestPojo> itemMap = new HashMap<>();
    public CamelRestService() {
    init();
    }
    @GET
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})  
    @Path("/getAll/")
    public Collection<CamelRestPojo> getAll() {
    return itemMap.values();
    }

    final void init() {
    CamelRestPojo o = new CamelRestPojo();
    o.setName("JOE BLOW");
    o.setId(100);
    itemMap.put(o.getId(), o);
    }
}

aaa.bbb.ccc.CamelRestRoute.java

package aaa.bbb.ccc;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.rest.RestBindingMode;

public class CamelRestRoutes extends RouteBuilder {

    public CamelRestRoutes() {
    }

    @Override
    public void configure() throws Exception {
    restConfiguration().component("restlet")
        .host("localhost")
        .port(8182)
        .bindingMode(RestBindingMode.json_xml);

    rest("/service")
        .bindingMode(RestBindingMode.json_xml)
        .get("/getAll")
        .produces("application/json")
        .to("direct:thingX");

    from("direct:thingX")
        .to("bean:camelRestService?method=getAll")
        .log("---------------------- (AAA) ----------------------> direct:thingX...:" + body().toString())
        .to("direct:thingY");

    from("direct:thingY")
        .log("---------------------- (BBB) ----------------------> direct:thingY...:" + body().toString())
        .to("direct:thingZ");
    from("direct:thingZ")
        .log("---------------------- (CCC) ----------------------> direct:thingZ...:" + body().toString())
        .to("activemq:queue:bubblegum?jmsMessageType=Text&exchangePattern=InOnly");
    }
}

aaa.bbb.ccc.model.CamelRestPojo.java

package aaa.bbb.ccc.model;

import java.io.Serializable;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "camelRestPojo")
public class CamelRestPojo implements Serializable {
    @XmlElement
    private long id;
    @XmlElement
    private String name;
    public long getId() {
    return id;
    }
    public void setId(long id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    @Override
    public String toString() {
    return "CamelRestPojo{" + "id=" + id + ", name=" + name + '}';
    }
}

camel-route.xml

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
       xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
       xmlns:camel="http://camel.apache.org/schema/blueprint"
       xsi:schemaLocation="
         http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
         http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
         http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
         ">
    <camel:camelContext id="aaa.bbb.ccc.routing.poc" xmlns="http://camel.apache.org/schema/blueprint">
    <packageScan>
        <package>aaa.bbb.ccc</package>
    </packageScan>
    </camel:camelContext>
    <bean id="camelRestService" class="aaa.bbb.ccc.CamelRestService"/> 
    <bean id = "activemq" class = "org.apache.activemq.camel.component.ActiveMQComponent">
    <property name = "brokerURL" value = "tcp://localhost:61616"/>
    <property name = "userName" value = "admin"/>
    <property name = "password" value = "admin"/>
    </bean>
</blueprint>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>aaa.bbb.ccc</groupId>
    <artifactId>camelRest</artifactId>
    <version>1</version>
    <packaging>bundle</packaging>
    <name>camelRest</name>
    <description>camelRest</description>
    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <skipTests>true</skipTests>
    </properties>
    <dependencies>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>2.17.0</version>
        <scope>provided</scope>
    </dependency>           
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-restlet</artifactId>
        <version>2.17.0</version> 
        <scope>provided</scope>                     
    </dependency>       
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf</artifactId>
        <version>2.17.0</version>
        <scope>provided</scope>              
    </dependency>    
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-camel</artifactId>
        <version>5.11.0</version>
        <scope>provided</scope>            
    </dependency>
    </dependencies>
    <build>
    <finalName>${project.artifactId}-${project.version}</finalName>
    <resources>
        <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        </resource>
    </resources>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <showDeprecation>true</showDeprecation>
        </configuration>
        </plugin>   
        <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>3.3.0</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
            <Export-Package>aaa.bbb.ccc*</Export-Package>
            <Import-Package>*</Import-Package>
            </instructions>
        </configuration>
        </plugin>             
    </plugins>
    </build>
</project>

тестовый URL / возвращаемое значение

URL:
http://localhost:8182/service/getAll/

RETURNS:
[{"id": 100,"name": "JOE BLOW"}]    

Окружающая среда

IBM MQ server 9.0.3.0
IBM MQ client 8.0.0.7
jdk1.8.0_131
jboss-fuse-6.3.0.redhat-187

person sairn    schedule 04.08.2017    source источник
comment
(Я откатил это до предыдущей версии, чтобы она не включала материал для ответов. Я переместил материал для ответов в сообщение сообщества Wiki ниже. Если вы хотите повторно опубликовать это под своей учетной записью, чтобы вы получали голоса за для этого, пожалуйста, сделайте это и дайте мне знать).   -  person halfer    schedule 14.09.2020


Ответы (4)


(Отправлено решение от имени автора вопроса, чтобы переместить его в область для ответов).

Благодаря помощи / сообщениям щедрых участников форума, ниже, я пришел к рабочему решению, приведенному ниже.

Я включил относительно полный код / ​​контекст, то есть, чтобы другие могли прийти к решению быстрее, чем я.

aaa.bbb.ccc.CamelRestRoutes.java

package aaa.bbb.ccc;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.rest.RestBindingMode;

public class CamelRestRoutes extends RouteBuilder {

    public CamelRestRoutes() {
    }

    @Override
    public void configure() throws Exception {

    restConfiguration().component("restlet")
        .host("localhost")
        .port(8182)
        //.bindingMode(RestBindingMode.json_xml);
        .bindingMode(RestBindingMode.json);

    rest("/service")
        //.bindingMode(RestBindingMode.json_xml)
        .bindingMode(RestBindingMode.json)
        .get("/getAll")
        .produces("application/json")
        .to("direct:thingX");

    from("direct:thingX")
        .to("bean:camelRestService?method=getAll")
        .log("---------------------- (AAA) ----------------------> direct:thingX...:" + body().toString())
        .to("direct:thingY");

    from("direct:thingY")
        .log("---------------------- (BBB) ----------------------> direct:thingY...:" + body().toString())
        .to("direct:thingZ");

    from("direct:thingZ")
        .log("---------------------- (CCC) ----------------------> direct:thingZ...:" + body().toString())
        .to("wmq:queue:mylocalqueue?jmsMessageType=Text&exchangePattern=InOnly");        
    }
}

aaa.bbb.ccc.CamelRestService.java

package aaa.bbb.ccc;

import aaa.bbb.ccc.model.CamelRestPojo;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import javax.ws.rs.core.MediaType;

@Path("/service/")
public class CamelRestService {

    Map<Long, CamelRestPojo> itemMap = new HashMap<>();

    public CamelRestService() {
    init();
    }

    @GET
    //@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    @Produces({MediaType.APPLICATION_JSON})
    @Path("/getAll/")
    public Collection<CamelRestPojo> getAll() {
    System.out.println("====================== (getAll) ---------------------->");
    return itemMap.values();
    }

    final void init() {
    System.out.println("---------------------- (init) ---------------------->");
    CamelRestPojo o = new CamelRestPojo();
    o.setName("JOE BLOW");
    o.setId(100);
    itemMap.put(o.getId(), o);
    }
}

aaa.bbb.ccc.model.CamelRestPojo

package aaa.bbb.ccc.model;

import java.io.Serializable;
public class CamelRestPojo implements Serializable {

    private long id;
    private String name;

    public long getId() {
    return id;
    }
    public void setId(long id) {
    this.id = id;
    }

    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }

    @Override
    public String toString() {
    return "CamelRestPojo{" + "id=" + id + ", name=" + name + '}';
    }
}

camel-route.xml

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
       xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs"
       xmlns:camel="http://camel.apache.org/schema/blueprint"
       xsi:schemaLocation="
         http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
         http://cxf.apache.org/blueprint/jaxrs http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
         http://cxf.apache.org/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd
         ">
    <camel:camelContext id="aaa.bbb.ccc.routing.poc" xmlns="http://camel.apache.org/schema/blueprint">
    <packageScan>
        <package>aaa.bbb.ccc</package>
    </packageScan>
    </camel:camelContext>

    <bean id="camelRestService" class="aaa.bbb.ccc.CamelRestService"/> 

    <bean id="wmqcf" class="com.ibm.mq.jms.MQConnectionFactory">
    <property name="hostName" value="localhost"/>        
    <property name="port" value="1414"/>
    <property name="queueManager" value="QM1"/>     
    <property name="channel" value="DEV.ADMIN.SVRCONN"/>                     
    <property name="transportType" value="1"/>
    </bean>

    <bean id="wmqcfw"  class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="targetConnectionFactory" ref="wmqcf" />
    <property name="username" value="admin" />
    <property name="password" value="passw0rd" />
    </bean>  

    <bean id="wmqcfg" class="org.apache.camel.component.jms.JmsConfiguration">
    <property name="connectionFactory" ref="wmqcfw"/>
    <property name="concurrentConsumers" value="10"/>
    </bean>

    <bean id="wmq" class="org.apache.camel.component.jms.JmsComponent">
    <property name="configuration" ref="wmqcfg"/>     
    </bean>    
</blueprint>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>aaa.bbb.ccc</groupId>
    <artifactId>camelRest</artifactId>
    <version>1</version>
    <packaging>bundle</packaging>
    <name>camelRest</name>
    <description>camelRest</description>

    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <skipTests>true</skipTests>
    <mq.version>8.0.0.7</mq.version>
    </properties>

    <dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.25</version>
        <scope>provided</scope>               
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
        <scope>provided</scope>               
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>2.17.0</version>
        <scope>provided</scope>
    </dependency>           
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-restlet</artifactId>
        <version>2.17.0</version> 
        <scope>provided</scope>                     
    </dependency>       
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cxf</artifactId>
        <version>2.17.0</version>
        <scope>provided</scope>              
    </dependency> 
    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>allclient</artifactId>
        <version>${mq.version}</version>
        <scope>provided</scope>               
    </dependency>
    <dependency>
        <groupId>com.ibm.mq</groupId>
        <artifactId>jms</artifactId>
        <version>${mq.version}</version>
        <scope>provided</scope>
    </dependency>  

    </dependencies>

    <build>
    <finalName>${project.artifactId}-${project.version}</finalName>

    <resources>
        <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        </resource>
    </resources>

    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <showDeprecation>true</showDeprecation>
        </configuration>
        </plugin>   
        <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>3.3.0</version>
        <extensions>true</extensions>
        <configuration>
            <instructions>
            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
            <Export-Package>aaa.bbb.ccc*</Export-Package> 
            <Import-Package>*</Import-Package>                                                                      
            </instructions>
        </configuration>
        </plugin>             
    </plugins>
    </build>
</project>

вот содержимое папки развертывания jboss fuse

C:\tools\jboss-fuse-6.3.0.redhat-187\deploy>dir
 Volume in drive C is OSDisk
 Volume Serial Number is D89B-75DE

 Directory of C:\tools\jboss-fuse-6.3.0.redhat-187\deploy

08/17/2017  01:49 PM    <DIR>          .
08/17/2017  01:49 PM    <DIR>          ..
08/17/2017  01:49 PM             7,975 camelRest-1.jar
06/29/2017  01:00 AM           159,649 com.ibm.mq.osgi.allclientprereqs_8.0.0.7.jar
06/29/2017  01:00 AM         8,011,749 com.ibm.mq.osgi.allclient_8.0.0.7.jar
06/29/2017  01:00 AM         4,088,715 com.ibm.mq.osgi.java_8.0.0.7.jar
06/29/2017  01:00 AM           171,064 com.ibm.msg.client.osgi.commonservices.j2se_8.0.0.7.jar
06/29/2017  01:00 AM            48,715 com.ibm.msg.client.osgi.jms.prereq_8.0.0.7.jar.DISABLE
06/29/2017  01:00 AM           639,807 com.ibm.msg.client.osgi.jms_8.0.0.7.jar
06/29/2017  01:00 AM           216,218 com.ibm.msg.client.osgi.nls_8.0.0.7.jar
06/29/2017  01:00 AM           279,861 com.ibm.msg.client.osgi.wmq.nls_8.0.0.7.jar
06/29/2017  01:00 AM            92,406 com.ibm.msg.client.osgi.wmq.prereq_8.0.0.7.jar
06/29/2017  01:00 AM         7,963,226 com.ibm.msg.client.osgi.wmq_8.0.0.7.jar
09/15/2016  04:19 AM               873 README
          12 File(s)     21,680,258 bytes
           2 Dir(s)  143,871,660,032 bytes free

C:\tools\jboss-fuse-6.3.0.redhat-187\deploy>

Прочие примечания

Как бы то ни было, мне пришлось добавить следующие функции:

-camel-jackson
-camel-restlet

(Я уверен, что ваш опыт будет меняться, если вы будете возиться с тем, чтобы ваше приложение IBM MQ работало, и т. Д.).

Также fwiw, работает:

features:list | grep "jms" 

yields:

    JBossFuse:karaf@root> features:list | grep "jms"
    [installed  ] [2.4.0.redhat-630187  ] jms                                           karaf-enterprise-2.4.0.redhat-630187   JMS service and commands
    [installed  ] [2.17.0.redhat-630187 ] camel-jms                                     camel-2.17.0.redhat-630187
    [uninstalled] [2.17.0.redhat-630187 ] camel-sjms                                    camel-2.17.0.redhat-630187
    [uninstalled] [3.1.5.redhat-630187  ] cxf-transports-jms                            cxf-3.1.5.redhat-630187
    [uninstalled] [2.1.0.redhat-630187  ] switchyard-jms                                switchyard-2.1.0.redhat-630187
    [uninstalled] [2.1.0.redhat-630187  ] switchyard-quickstart-bpel-jms-binding        switchyard-2.1.0.redhat-630187
    [uninstalled] [2.1.0.redhat-630187  ] switchyard-quickstart-camel-jms-binding       switchyard-2.1.0.redhat-630187
    [uninstalled] [2.1.0.redhat-630187  ] switchyard-demo-security-propagation-jms      switchyard-2.1.0.redhat-630187
    [uninstalled] [1.1                  ] jms-spec                                      activemq-core-5.11.0.redhat-630187     JMS spec 1.1 libraries
    [installed  ] [2.0                  ] jms-spec                                      activemq-core-5.11.0.redhat-630187     JMS spec 2.0 libraries
    [uninstalled] [1.1                  ] jms-spec-dep                                  activemq-core-5.11.0.redhat-630187     JMS spec 1.1 dependency
    [installed  ] [2.0                  ] jms-spec-dep                                  activemq-core-5.11.0.redhat-630187     JMS spec 2.0 dependency
    [uninstalled] [5.11.0.redhat-630187 ] activemq-jms-spec-dep                         activemq-core-5.11.0.redhat-630187     ActiveMQ broker libraries
    [installed  ] [3.2.16.RELEASE_1     ] spring-jms                                    spring-2.4.0.redhat-630187             Spring 3.2.x JMS support 
    
person Community    schedule 13.09.2020

Я работал над несколькими упражнениями по интеграции Fuse / W-MQ. Объединение клиентских драйверов W-MQ в ваше приложение, вероятно, не будет работать на Fuse. Вам необходимо установить клиентские JAR-файлы W-MQ во время выполнения Fuse. IBM предоставляет для этой цели версии, совместимые с OSGi.

Насколько я помню, их всего девять, но не все нужны во всех конфигурациях. Вы можете установить их с помощью osgi: install в командной строке Karaf или просто сбросить их в каталог deploy / для тестирования. В Fuse может потребоваться внести некоторые изменения в конфигурацию - они зависят от конкретной комбинации версий.

Заводская конфигурация вашего подключения выглядит в целом правильной.

person Kevin Boone    schedule 16.08.2017
comment
Привет, Кевин! - Спасибо за ваш вклад. Версия предохранителя: jboss-fuse-6.3.0.redhat-187. Запуск docker exec mq dspmqver показывает, что версия сервера mq: 9.0.3.0. Запуск версии из командной строки Karaf дает: 2.4.0.redhat-630187. Что касается драйверов, вы имеете в виду OSGI-версии allclient.jar и allclientprereqs.jar? - person sairn; 16.08.2017
comment
@sairn: Я ожидал, что драйверы W-MQ 9 (я полагаю, я должен действительно сказать, что клиентская среда выполнения OSGi) будут работать с Fuse 6.3-187 без изменений Fuse, установив все 9 (насколько я помню) пакетов IBM, кроме xxx Пакет .jms.prereq.xxx. Этот комплект будет конфликтовать с комплектом jms-api, поставляемым с Fuse. По крайней мере, таков мой опыт. - person Kevin Boone; 21.08.2017

«Древние» jar-файлы содержат все остальные клиентские пакеты, о которых упоминал Кевин.

Однако я немного озадачен тем, что вижу. Я загрузил клиентские jar-файлы IBM MQ 9.0.3, а в zip-архиве есть только com.ibm.mq.allclient.jar.

Для MQ 8 у вас будут пакеты com.ibm.mq.osgi.allclient.jar и com.ibm.mq.osgi.allclientprereqs.jar. Проблема в том, что в пакет prereq включены интерфейсы javax.jms. Вам нужно будет изменить пакет prereq, чтобы удалить JMS api jar, чтобы использовать его во Fuse. Я не знаю, так ли обстоит дело с MQ 9.

person Doug Grove    schedule 17.08.2017

Специально для предохранителя 6.3:

Насколько я помню, Fuse 6.3 тестировался на клиентской среде выполнения для W-MQ 8, без каких-либо модификаций в Fuse. Я не могу вспомнить, было ли это с отдельными пакетами IBM 8-9 или с пакетом «allclient», о котором упоминает Дуг. В любом случае вам нужно избегать ситуации, когда у вас есть JAR-файл JMS 2.0 API (то есть пакет, который включает классы javax.jms.xxx) как из W-MQ, так и из Fuse - они будут конфликтовать. Поэтому, если вы устанавливаете xxx_allclient.jar, вам нужно либо не устанавливать xxx_allclientprereqs.jar, либо удалить пакет Fuse jms-api из среды выполнения Fuse. Если вы выберете путь использования кучи из 8 или 9 пакетов, вы должны установить их все, кроме одного, называемого чем-то вроде xxx_jms.prereq_xxx.jar.

Вы можете установить с помощью osgi: install или, для разработки, просто скопируйте их в каталог deploy / на Fuse. В Fabric8 вам в конечном итоге потребуется поместить файлы JAR IBM в какой-то репозиторий, а затем создать профиль, который на них ссылается; но тестирование без Fabric8 в первую очередь, вероятно, имеет смысл, чтобы устранить этот дополнительный источник сложности.

Я не распаковывал W-MQ 9 allclient.jar, поэтому не знаю, что внутри. Если он содержит классы javax.jms.xxx либо напрямую, либо в другом внутреннем JAR, то я думаю, вам нужно либо распаковать и перепаковать JAR без этих классов, либо удалить пакет Fuse jms-api.

В любом случае, Fuse 6.3 со средой исполнения клиента W-MQ 8 - хорошая комбинация и, вероятно, самая простая комбинация Fuse / W-MQ для начала работы. Вам не обязательно использовать среду выполнения клиента W-MQ, версия которой соответствует версии брокера W-MQ, если на Fuse проще установить другой клиент. Однако перед тем, как пойти по этому пути, вам следует проверить заявление о совместимости IBM. Насколько я помню, клиентская среда выполнения W-MQ 8 сертифицирована IBM для работы с любым брокером 7.5.x, но я не уверен, работает ли совместимость в обратном направлении.

FWIW, я рекомендую вам не бояться использовать метод проб и ошибок. Я работал с Fuse и W-MQ в течение нескольких лет, и до сих пор считаю, что мне приходится возиться. Исключения помогут в устранении неполадок.

person Kevin Boone    schedule 17.08.2017
comment
Спасибо, Кевин. Версия MQserver - v9.0.3.0, а jar-файлы OSGI allclient и allclientprereqs - v8.0.0.7. Я сбросил все 10 (?) Файлов OSGI 8.0.0.7 в папку развертывания fuse. Я удалю allclientprereqs.jar и сообщу вам результат. :-) - person sairn; 17.08.2017