我正在尝试将 Weblogic (10.3) MDB 连接到 Tibco EMS JMS 队列。我已经使用简单的 Java/Spring JNDI 连接从队列中读取,所以我知道外部 JNDI 查找名称是有效的。我的WL国外服务器详情:
JNDI Initial Context Factory: com.tibco.tibjms.naming.TibjmsInitialContextFactory
JNDI Connection URL: tcp://ems-dit-am-uat-1.app.xxx.net:30055
JNDI Properties:
java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
java.naming.provider.url=tcp://ems-dit-am-uat-1.app.xxx.net:30055
java.naming.security.principal=rdsuat
java.naming.factory.url.pkgs=com.tibco.tibjms.naming
(password entered in Properties Credential box).
目的地:
Name, Local JNDI Name and Remote JNDI name all set to Q.NY.DERIV.DRD.RFI
连接工厂:
Name, Local JNDI Name and Remote JNDI name all set to DRDRFIQueueConnectionFactory
(which simply changes the default connection factory port).
User/password also set here (same as before).
weblogic-ejb-jar.xml
<weblogic-enterprise-bean>
<ejb-name>MessageReceiver</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>2</max-beans-in-free-pool>
</pool>
<destination-jndi-name>Q.NY.DERIV.DRD.RFI</destination-jndi-name>
<connection-factory-jndi-name>DRDRFIQueueConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
我得到的错误是:消息驱动的 EJB:MessageReceiver 无法连接到 JMS 目标:Q.NY.DERIV.DRD.RFI。错误是:无法获取分发目标信息。目标 JNDI 名称为 Q.NY.DERIV.DRD.RFI,提供者 URL 为空
我已经尝试将配置移动到 weblogic-ejb-jar.xml 中(即:
<weblogic-enterprise-bean>
<ejb-name>MessageReceiver</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>2</max-beans-in-free-pool>
</pool>
<destination-jndi-name>Q.NY.DERIV.DRD.RFI</destination-jndi-name>
<initial-context-factory>com.tibco.tibjms.naming.TibjmsInitialContextFactory</initial-context-factory>
<provider-url>tcp://ems-dit-am-uat-1.app.xxx.net:30055</provider-url>
<connection-factory-jndi-name>DRDRFIQueueConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
</weblogic-enterprise-bean>
但我得到一个不同的错误: 异常激活模块:EJBModule(rfiloader.jar) 无法部署 EJB:来自 rfiloader.jar 的 MessageReceiver:无法找到 tcp://ems-dit-am-uat-1.app.xxx 的 EndPointFinder .net:30055
...有任何想法吗?
谢谢克里斯