我試過每一個組合後。在我的情況下工作的解決方案是:不建議
WMQInitialContextFactory ...只使用RefFSContextFactory他們從8版IBM MQ開始
因此創建.binding文件的庫\的conf \ axis2.xml後應該像
<parameter name="esbMngr" locked="false">
<parameter name="java.naming.factory.initial" locked="false">com.sun.jndi.fscontext.RefFSContextFactory</parameter>
<parameter name="java.naming.provider.url" locked="false">file:/home/wso2admin/wso2esb-5.0.0/jndi</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">GSTQueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
<parameter name="transport.jms.UserName" locked="false">userName</parameter>
<parameter name="transport.jms.Password" locked="false">userPassword</parameter>
</parameter>
.....
其中GSTQueueConnectionFactory是在.binding文件
那麼代理服務器看起來定義ConectionFactory名稱,如:
<?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse"
name="TMSLeaseMQParser"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="jms">
<target>
<inSequence>
<log level="full">
</log>
</inSequence>
<outSequence>
<send/>
</outSequence>
<faultSequence/>
</target>
<parameter name="transport.jms.DestinationType">queue</parameter>
<parameter name="transport.jms.Destination">TMSALease</parameter>
<parameter name="transport.jms.ContentType">
<rules xmlns="">
<jmsProperty>contectType</jmsProperty>
<default>application/xml</default>
</rules>
</parameter>
<parameter name="transport.jms.ConnectionFactory">esbMngr</parameter> <description/>
</proxy>
所以esbMngr是axis2.xml的定義,同時TMSALease部分的名稱是您正在從IBM MQ讀取的消息隊列
我希望這會節省一些時間...任何反饋我s歡迎
注意:通信可能會非常棘手。要確保你檢查你的用戶名可以訪問排隊,在IBM技術「2035 MQRC_NOT_AUTHORIZED Connecting to WebSphere MQ from WebSphere Application Server via CLIENT Bindings」
要檢查MQ OAM權限我們dspmqaut
命令讀更多,例如:
dspmqaut -m WS02ESBManager -n TMSALease -t queue -p userName
要設置MQ OAM權限我們setmqaut
命令,例如:
setmqaut -m WS02ESBManager -n TMSALease -t queue -p userName+put
有時也幫助,如果你:
個禁用信道認證記錄在通信在屬性隊列管理器的 ...
我發現我需要使用WMQInitialContextFactory和改變ESB的Axis2配置如<參數名稱=「java.naming.provider。 URL「locked =」false「> {MQ_SERVER_IP}:{PORT}/{CHANNEL_NAME} {QUEUE_MANAGER_NAME} 隊列 <參數名稱=」transport.jms.Destination「> {QUEUE_NAME}但爲什麼需要定義隊列名??? –
lpastor