【发布时间】:2015-09-17 00:37:36
【问题描述】:
我第一次尝试在 JBoss 中使用 IBM MQ 适配器(即使是第一次使用 JBoss)。我们正在将我们的应用程序从 WebSphere7 迁移到 JBoss 6.3。为此,我需要配置我们过去在 IBM WebSphere 上使用的相同 MQ。因此,我开始配置 IBM 资源适配器。下面是standalone.xml 文件配置。
下面的配置工作正常,但是我无法使用代码(QueueConnectionFactory) context.lookup("java:/comp/env/serviceQCF") 获取 QueueConnectionFactory,因为它会引发类转换异常(com.ibm.mq.connector.outbound.ConnectionFactoryImpl 不能被强制转换为 javax.jms.QueueConnectionFactory)。
当我使用connection-definition class-name="javax.jms.QueueConnectionFactory" jndi-name="java:/comp/env/serviceQCF" enabled="true" pool-name="ConnectionClass" 时,*JBoss 正在抛出异常
javax.naming.NameNotFoundException: comp/env/serviceQCF -- 服务 jboss.naming.context.java.comp.env.serviceQCF*
我曾尝试使用 ConnectionFactory,但结果相同(未找到名称异常)
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
<resource-adapters>
<resource-adapter id="wmq.jmsra.rar">
<archive>
wmq.jmsra.rar
</archive>
<transaction-support>LocalTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl" jndi-name="java:/comp/env/serviceQCF" enabled="true" pool-name="ConnectionClass">
<config-property name="port">
1414
</config-property>
<config-property name="channel">
MQ.CLT.STH.CHL
</config-property>
<config-property name="hostName">
127.0.0.127
</config-property>
<config-property name="transportType">
MQ.CLIENT
</config-property>
<config-property name="queueManager">
MQSYKHT0
</config-property>
<security>
<application/>
</security>
<validation>
<background-validation>false</background-validation>
</validation>
</connection-definition>
</connection-definitions>
我需要配置其他东西吗?我需要添加/修改任何类路径吗?如果是,在哪里以及如何?
目前在获取上下文时未设置任何属性:
context = new InitialContext();
但尝试使用以下的:
final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "remote://localhost:4447");
但没有运气。
请帮帮我。
【问题讨论】: