【问题标题】:EJB resource injection in Weblogic 10.3.3Weblogic 10.3.3 中的 EJB 资源注入
【发布时间】:2013-01-10 12:18:55
【问题描述】:

我需要编写一个我想部署到 WLS 10.3.3 的无状态会话 bean。会话 bean 应该能够将文本消息发送到通过 WLS 控制台创建的已知 JMS 队列。因此我写了以下代码:

package com.mycompany.ejb;

import javax.annotation.Resource;
import javax.ejb.*;
import javax.jms.*;

@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
public class MyEjb{

    @Resource(name = "jmsConnectionFactory")
    private ConnectionFactory jmsConnectionFactory;
    @Resource(name = "queue1")
    private Destination queue1;

    public MyEjb(){}

    public void sendMsgToQueue(String payload, ConnectionFactory connFactory, Destination destination) throws Exception{
        if(payload == null)
            throw new IllegalArgumentException("Message payload is null");
        if(connFactory == null)
            throw new IllegalArgumentException("Connection factory is null");
        if(destination == null)
           throw new IllegalArgumentException("Message destination is null");

        Connection connection = connFactory.createConnection();
        Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
        MessageProducer messageProducer = session.createProducer(destination);
        TextMessage textMessage = session.createTextMessage();
        textMessage.setText(payload);
        messageProducer.send(textMessage);
    }

}

我现在需要做的是提供一个有效的 weblogic-ejb-jar.xml 和一个资源引用到 jndi-name 的映射。有人可以提供一个带有以下映射的 weblogic-ejb-jar.xml 示例:

  • jmsConnectionFactory 应该绑定到 jndi-name com.mycompany.jmsXAConnFactory 的连接工厂
  • queue1 应该绑定到 jndi-name com.mycompany.jmsQueue1 的队列

【问题讨论】:

    标签: ejb weblogic


    【解决方案1】:

    对我有用的 weblogic-ejb-jar.xml:

    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-ejb-jar xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd ">
        <weblogic-enterprise-bean>
            <ejb-name>MyEjb</ejb-name>
            <stateless-session-descriptor></stateless-session-descriptor>
            <resource-description>
                <res-ref-name>jmsConnectionFactory</res-ref-name>
                <jndi-name>com.mycompany.jmsXAConnFactory</jndi-name>
            </resource-description>
            <resource-env-description>
                <resource-env-ref-name>queue1</resource-env-ref-name>
                <jndi-name>com.mycompany.jmsQueue1</jndi-name>
            </resource-env-description>
        </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    

    【讨论】:

      猜你喜欢
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 2014-02-20
      • 2010-10-27
      相关资源
      最近更新 更多