JMS队列出错,因为消息驱动bean使用websphere中的目标

JMS队列出错,因为消息驱动bean使用websphere中的目标,jms,ejb-3.0,message-queue,websphere-7,message-driven-bean,Jms,Ejb 3.0,Message Queue,Websphere 7,Message Driven Bean,我得到以下错误: 应用程序EBS#u Calc#EBS#u Calc#EJB.jar#MBIntegrations有一个useJNDI,在ActivationSpec类jms/ASQueue(com.ibm.ws.sib.api.jmsra.impl.jmsjmcaactivationspecimpl)上没有对应的属性资源适配器单元/uswsa010235node01cell/nodes/uswsa010235node01/servers/server1/resources.xml 35; J2

我得到以下错误:

应用程序EBS#u Calc#EBS#u Calc#EJB.jar#MBIntegrations有一个useJNDI,在ActivationSpec类jms/ASQueue(com.ibm.ws.sib.api.jmsra.impl.jmsjmcaactivationspecimpl)上没有对应的属性资源适配器单元/uswsa010235node01cell/nodes/uswsa010235node01/servers/server1/resources.xml 35; J2CResourceAdapter_136490976437。此属性将被忽略。这可能会产生不良影响

ActivationSpe W J2CA0161W:提供的目标JNDI名称引用的对象类型错误。对象必须实现javax.jms.destination。目标JNDI名称为:jms/ASQueue。提供的对象类为:{1}

ActivationSpe E J2CA0137E:ActivationSpec validate()方法失败,出现InvalidPropertyException。激活规范是jms/ASQueue(com.ibm.ws.sib.api.jmsra.impl.JmsJcaActivationSpecImpl),它属于已安装的ResourceAdapter单元/uswsa010235node01cell/nodes/uswsa010235node01/servers/server1/resources.xml#J2CResourceAdapter_1364909976437,并与MDB应用程序EBS#u Calc#EBS#u Calc#EJB.jar#mbigrations关联。请参见以下失败属性及其值的列表:

destination  null
destination  null

CWSJR1181E:JMS激活规范具有无效值-未能验证JMS激活规范的原因是:[CWSJR1188E:必须为JMS激活规范上的目标指定一个值,CWSJR1192E:使用队列的目标类型的JMS激活规范必须具有类型为的目标[com.ibm.websphere.sib.api.jms.JmsQueue]但传递的目标类型为[null]]

我在websphere中相应地配置了队列、总线和目的地

我的java代码如下所示:

    @MessageDriven(mappedName = "jms/ASQueue", activationConfig = {
        @ActivationConfigProperty(propertyName = "connectionFactoryJndiName", propertyValue = "jms/CalcConnectionFactory"),         
@ActivationConfigProperty(propertyName = "destinationName", propertyValue = "jms/calcInQueue"),
    @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")        })

    @Resources ({
      @Resource(name="jms/CalcConnectionFactory",        
                mappedName="jms/CalcConnectionFactory",   // External JNDI name 
                type=javax.jms.ConnectionFactory.class)
     })


    public class MBIntegrations implements MessageListener {

    private static final String CONNECTION_FACTORY_NAME = "jms/CalcConnectionFactory";
    private static final String DESTINATION_NAME = "jms/calcInQueue";

    @Resource
    private MessageDrivenContext mdc;

    private static final Logger logger = Logger.getLogger(MBIntegrations.class);

    public void onMessage(Message inMessage) {

        TextMessage msg = null;

        try {
            if (inMessage instanceof TextMessage) {
                msg = (TextMessage) inMessage;
                logger.info("MESSAGE BEAN: Message received: " + msg.getText());
            } else {
                logger.warn("Message of wrong type: "
                        + inMessage.getClass().getName());
            }

        } catch (JMSException e) {
            e.printStackTrace();
            mdc.setRollbackOnly();
        } catch (Throwable te) {
            te.printStackTrace();
        }

    }

}
和IBM活页夹

<message-driven name="MBIntegrations">
        <jca-adapter activation-spec-binding-name="jms/ASQueue"
        destination-binding-name="jms/ASQueue" />
        <resource-ref name="jms/CalcConnectionFactory"
        binding-name="jms/CalcConnectionFactory" />
        <resource-ref name="jdbc/OracleDS" binding-name="jdbc/ORACLE" />
    </message-driven>


我不确定我做错了什么,有人能帮我吗?

查看后在活页夹中发现问题:

上面写着:

<jca-adapter activation-spec-binding-name=
 "jms/InternalProviderSpec" 
 destination-binding-name="jms/ServiceQueue"/>

转到WebSphere管理控制台

激活规范-打开激活规范

目标JNDI名称-可能错误。如果是主题,请确保您提供了主题JNDI名称

 ... destination-binding-name="jms/calcInQueue" />