首页 文章

Wildfly Swarm - 资源适配器(IBM wmq.jmsra.rar)

提问于
浏览
0

在这些时刻,我正在尝试在Java项目中使用Wildfly Swarm配置IBM wmq.jmsra.rar资源适配器,但没有成功 . 这些是我到目前为止所做的步骤:

1)pom.xml(手工安装工件)

<dependency>
    <groupId>com.ibm.mq</groupId>
    <artifactId>mq</artifactId>
    <version>7.5.0.8</version>
    <type>rar</type>
</dependency>

2)此资源适配器的module.xml(在src / main / resources / modules / com / ibm / wsmq / main中):

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:2.0" name="com.ibm.mq">
    <resources>
        <resource-root path="." />
        <resource-root path="com.ibm.mq.commonservices.jar" />
        <resource-root path="com.ibm.mq.connector.jar" />
        <resource-root path="com.ibm.mq.headers.jar" />
        <resource-root path="com.ibm.mq.jar" />
        <resource-root path="com.ibm.mq.jmqi.jar" />
        <resource-root path="com.ibm.mq.jmqi.local.jar" />
        <resource-root path="com.ibm.mq.jmqi.remote.jar" />
        <resource-root path="com.ibm.mq.jmqi.system.jar" />
        <resource-root path="com.ibm.mq.jms.admin.jar" />
        <resource-root path="com.ibm.mq.pcf.jar" />
        <resource-root path="com.ibm.mqjms.jar" />
        <resource-root path="com.ibm.msg.client.commonservices.j2se.jar" />
        <resource-root path="com.ibm.msg.client.commonservices.jar" />
        <resource-root path="com.ibm.msg.client.jms.internal.jar" />
        <resource-root path="com.ibm.msg.client.jms.jar" />
        <resource-root path="com.ibm.msg.client.matchspace.jar" />
        <resource-root path="com.ibm.msg.client.provider.jar" />
        <resource-root path="com.ibm.msg.client.ref.jar" />
        <resource-root path="com.ibm.msg.client.wmq.common.jar" />
        <resource-root path="com.ibm.msg.client.wmq.factories.jar" />
        <resource-root path="com.ibm.msg.client.wmq.jar" />
        <resource-root path="com.ibm.msg.client.wmq.v6.jar" />
        <resource-root path="dhbcore.jar" />
    </resources>
    <dependencies>
        <module name="javax.api" />
        <module name="javax.resource.api" />
        <module name="javax.jms.api" />
        <module name="javax.management.j2ee.api" />
    </dependencies>
</module>

注意:在此路径的主文件夹中,我也复制了mq-7.5.0.8.rar文件 .

3)project-stages.yml:

resource-adapters:resource-adapters:mq:archive:mq.rar transaction-support:XATransaction
connection-definitions:BSMConnectionFactoryHigh:class-name:com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl jndi-name:jms / bsmConnectionFactoryHigh config-properties:hostName:value:tqhr0712.sede.corp.sanpaoloimi.com queueManager:value:TQHR0712 port:value:1412 channel:value:CH.BSMA.CONN transportType:value:CLIENT
admin-objects:BSMSendQueueHigh:class-name:com.ibm.mq.connector.outbound.MQQueueProxy jndi-name:jms / bsmSendQueueHigh config-properties:baseQueueName:value:QLOCAL.DATAGRAM.WUO.UOS4APPO9 baseQueueManagerName:value:TQHR0712

部署:com.ibm.mq:mq.rar:

然后,当我运行项目时,我收到此错误:

2018-02-08 10:33:54 INFO <org.jboss.as.server.deployment> <MSC service thread 1-7> WFLYSRV0028: Stopped deployment mq.rar (runtime-name: mq.rar) in 72ms
2018-02-08 10:33:54 INFO <org.jboss.as.controller> <main> WFLYCTL0183: Service status report
WFLYCTL0184:    New missing/unsatisfied dependencies:
      service jboss.resourceadapters-subsystem (missing) dependents: [service jboss.deployment.unit."mq.rar".CONFIGURE_MODULE]

有人会帮忙解决这个问题吗?

非常感谢 .

1 回答

  • 0

    我很高兴地告诉你,我发现如何使Wildfly Swarm和IBM websphere mq资源适配器集成成功 .

    以下是要遵循的步骤:

    1) Get the wmq.jmsra.rar from IBM (version 8.x)

    2) Creating the artifacts for this file like this:

    <dependency>
                                       <groupId>com.ibm</groupId>
                                       <artifactId>mq</artifactId>
                                       <version>8.0.0.7</version>
                                       <type>rar</type>
                       </dependency> 
                       <dependency>
                                       <groupId>com.ibm</groupId>
                                       <artifactId>mq</artifactId>
                                       <version>8.0.0.7</version>
                                       <type>jar</type>
                                       <scope>provided</scope>
                       </dependency>
    

    3) src/main/resources: a)创建文件夹模块 . b)在modules模块文件夹中创建com / ibm / mq / main . c)在主文件夹内复制资源适配器(.rar文件)并将其重命名为mq.rar . d)在main主文件夹中创建文件module.xml,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>    
    <module xmlns="urn:jboss:module:2.0" name="com.ibm.mq">    
        <resources>    
            <resource-root path="." />    
            <resource-root path="com.ibm.mq.connector.jar" />
            <resource-root path="com.ibm.mq.headers.jar" />
            <resource-root path="com.ibm.mq.jar" />
            <resource-root path="com.ibm.mq.jmqi.jar" />    
            <resource-root path="com.ibm.mq.pcf.jar" />    
            <resource-root path="com.ibm.mq.jmqi.local.jar" />    
            <resource-root path="com.ibm.mqjms.jar" />    
        </resources>    
        <dependencies>    
            <module name="javax.api" />    
            <module name="javax.resource.api" />    
            <module name="javax.jms.api" />    
            <module name="javax.management.j2ee.api" />    
        </dependencies>    
    </module>
    

    4) project-stages.yml:

    swarm:jca:archive-validation:enabled:false fail-on-warn:false

    resource-adapters:resource-adapters:mq:archive:mq.rar transaction-support:XATransaction
    connection-definitions:ReinoltroConnectionFactory:class-name:com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl jndi-name:jms / testConnectionFactory recovery-username:recovery-password:tracking:false
    pool-name:MQCONNF config-properties:hostName:value:queueManager:value:port:value:channel:value:transportType:value:CLIENT
    admin-objects:testQueue:class-name:com.ibm.mq.connector.outbound.MQQueueProxy jndi-name:jms / testQueue pool-name:MQQUEUENAME config-properties:baseQueueName:value:baseQueueManagerName:value:

    部署:com.ibm:mq.rar:

    5) Java code (send message using JMS 2)

    @Stateless
    @TransactionManagement(TransactionManagementType.CONTAINER)
    public class RichiesteServiceImpl {
     ....
        @Inject
        @JMSConnectionFactory("java:/jms/reinoltroConnectionFactory")
        JMSContext jmsContext;
    
        @Resource(mappedName = "java:/jms/reinoltroBDQueue")    
        Queue testQueue;
     .....
    
         public boolean sendMessage()  {
    
            boolean esitoReinoltro = false;
    
            try {
                jmsContext.createProducer().send(reinoltroQueue, "Messaggio di prova" );
    
                esitoReinoltro = true;
    
                return esitoReinoltro;
            }
            catch(Exception e) {        
                throw new ServiceException(e);
            }
        }
    }
    

    工作完成了 .

相关问题