我的消息驱动bean:
XSpi_Transfer(&Spi, SendData, ResData, 1);
位于网络应用程序
中@MessageDriven(
activationConfig = { @ActivationConfigProperty(
propertyName = "destination", propertyValue = "jms/mytestqueue"), @ActivationConfigProperty(
propertyName = "destinationType", propertyValue = "javax.jms.Queue")
})
public class MessageQueueInputBean implements MessageListener {
@Override
public void onMessage(Message msg) {
我的目标是将MDB连接到MQ队列和MQ连接工厂。然而,在这个星座中我只得到了可怕的消息
MDB的REQUIRED_BINDING_NOT_FOUND
在WebSphere 8.5.5上部署它时。
因此我创建了文件<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Test WebApp</display-name>
,这导致部署成功:
ibm-ejb-jar-bnd.xml
显然,此配置仅允许<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" version="1.0">
<message-driven name="MessageQueueGuidewireBatchInputBean">
<jca-adapter activation-spec-binding-name="jms/myTestActivationSpecification" />
</message-driven>
</ejb-jar-bnd>
,它指的是&#34;激活规范&#34;在WAS或侦听器端口。
我的问题是据我所知,在目标系统中(由来自不同公司的人员维护)没有激活规范。而是有一个队列和一个连接工厂。
是否可以仅参考队列和连接工厂部署MDB?
答案 0 :(得分:1)
没有。您不只是连接到端点。您还要连接到一个线程池,其线程将用于分派您的MDB(具有所有正常的服务质量和API可用)。这就是您需要激活规范或侦听器端口的额外构造的原因。