Jms 在JBoss 5.1中将.bindings文件与MDB一起使用
我正在编写一个标准的JEE 5应用程序,需要使用来自MQ服务器的JMS消息。应用服务器是JBOSS EAP 5.1。因为这是一个标准的JEE应用程序,所以MDB非常适合作为消息侦听器。MQ管理员提供了一个.bindings文件作为MQ配置。在搜索web之后,我找不到使用MDB的.bidings文件的方法。我已经试过使用标准激活规范,效果很好。但为此,JMS属性需要位于JBOSS或EE特定的配置文件中。Jms 在JBoss 5.1中将.bindings文件与MDB一起使用,jms,ibm-mq,jboss-mdb,Jms,Ibm Mq,Jboss Mdb,我正在编写一个标准的JEE 5应用程序,需要使用来自MQ服务器的JMS消息。应用服务器是JBOSS EAP 5.1。因为这是一个标准的JEE应用程序,所以MDB非常适合作为消息侦听器。MQ管理员提供了一个.bindings文件作为MQ配置。在搜索web之后,我找不到使用MDB的.bidings文件的方法。我已经试过使用标准激活规范,效果很好。但为此,JMS属性需要位于JBOSS或EE特定的配置文件中。 有人能告诉我一种在MDB中使用.bindings文件的方法吗?a.bindings文件来自文件
有人能告诉我一种在MDB中使用.bindings文件的方法吗?a.bindings文件来自文件系统JNDI上下文。这是使用FileSystemContext在JNDI中存储对象时写入的文件。它真的不应该到处移动 JBOSS将拥有自己的JNDI提供程序,而该提供程序将无法读取此文件。您需要的是来自需要连接到的queuemanager的MQ sys admin的信息。。i、 e.输入JNDI的信息。可能使用JMSAdmnin或MQExplorer。主机名、端口、通道、任何安全配置等
在JBOSS中,您需要部署MQ资源适配器(a)这个可通过(b)下载的配置信息可以在中找到,使用JBOSS 5.1上IBM MQ工具创建的.bindings文件相对简单 据推测,您已经有了一个由MQ管理员创建的.bindings文件 在JBOss方面,您将使用:
com.sun.jndi.fscontext.RefFSContextFactory
命名上下文工厂以读取.bindings文件并将其加载到JBoss JNDI中。为了做到这一点,您需要额外的JAR,这些JAR不是作为IBM MQ JCA rar文件的一部分提供的。在Unix系统上,可以在IBM MQ发行版中的以下目录下找到:
/opt/mqm/java/lib/
目录。您将需要:
fscontext.jar
mqcontext.jar
providerutil.jar
将它们放在${JBOSS_PROFILE)/lib目录中
然后,在${JBOSS_PROFILE)/deploy/messaging目录中,创建一个名为wmq-bindings-ds.xml的文件:
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
<!-- Load the bindings file for the naming context -->
<mbean code="org.jboss.naming.ExternalContext" name="jboss.jndi:service=ExternalContext,jndiName=BindingsNamingContext">
<attribute name="JndiName">java:/BindingsNamingContext</attribute>
<attribute name="Properties">
java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory
java.naming.provider.url=file:///${jboss.server.data.dir}/mq
</attribute>
<attribute name="InitialContext">javax.naming.InitialContext</attribute>
</mbean>
<!-- The WSMQ JMS provider loader -->
<mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="jboss.mq:service=JMSProviderLoader,name=BindingsWSMQJMSProvider">
<attribute name="ProviderName">BindingsWSMQJMSProvider</attribute>
<attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
<attribute name="QueueFactoryRef">java:/BindingsNamingContext/mqConnectionFactory</attribute>
<attribute name="TopicFactoryRef">java:/BindingsNamingContext/mqConnectionFactory</attribute>
</mbean>
</connection-factories>
注:
java:/BindingsNamingContext/mqConnectionFactory
java:/BindingsNamingContext/mqConnectionFactory
“java:/BindingsNamingContext”匹配提供程序,“mqConnectionFactory”匹配my.bindings文件中的内容
java:/BindingsNamingContext