我需要编写一个无状态会话bean,并将其部署到WLS10.3。3.会话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提供一个例子吗?
WebLogicEJBJAR。对我有用的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>
我正在使用Jersey 2.8和Glassfish 4.0。我有一个资源定位器类,如下所示 问题是,当通过ResourceContext获得MySubService时,EJB没有注入其中。 以前,我使用Glassfish 3和Jersey 1.17以及专有的ResourceContext,完全相同的代码可以正常工作。 我在谷歌上搜索了很多,读到了很多类似(但有点不同)的问题,据我所知,当通过Res
问题内容: 使用新的EJB 3.1规范,是否可以将EJB注入pojo?我知道在EJB 3.0中,@ EJB批注可用于注入EJB,但这不适用于简单的pojos。 如果不是,我必须在JNDI中查找bean,因为我知道您不能简单地使用new关键字。 问题答案: 是的,使用JNDI查找。 由于您的POJO是由您创建的(我假设),因此容器不负责注入依赖项。
Java 元数据(Metadata)规范(JSR-175),是J2SE 5.0和更高版本的一部分,提供一种在Java代码中指定配置数据的方法。Java代码中的元数据也被称为注解。在JavaEE中,注解用于声明对外部资源的依赖和在Java代码中的配置数据而无需在配置文件中定义该数据。 本节描述了在Java EE技术兼容的Servlet容器中注解和资源注入的行为。本节扩展了Java EE规范第5节标题
免责声明:我刚刚开始使用OSGI,所以请忍受我和我的知识不足... 为了本练习,假设我有一个基于泽西岛 (2.17.0) 的 REST 应用程序在 OSGI 环境中的 Jetty (9.2.10) 下运行,它为用户提供了一些通过 SOAP 从单独的服务器收集的统计信息。 我现在尝试在另一个应用程序中重用一些现有代码,该应用程序应该通过JMS(或其他东西)检索统计信息。 我的目的是在捆绑包中为客户端
我有一个关于JavaEE bean的问题。我已经用Spring和Hibernate开发了很长时间,现在我改用JavaEE-所以很抱歉,如果这是一个非常简单的问题,但目前我不知道如何处理我的问题。 我有两个bean,它们在JNDI中注册(在JBoss上--参见上面)。-到目前为止还可以。如果我在Servlet中使用@ejb作为依赖项注入,它工作得很好: 16:39:51,490信息[org.jbos
我试图构建一个资源包,从数据库而不是属性文件获取其消息。我做了一些扩展ResourceBundle的测试,ResourceBundle。控件和ListResourceBundle,我想我走的是正确的道路。 当我需要查询实际数据库以从我的ResourceBundle实现中获取消息时,我就到达了一个点。我想利用EJB层上的所有JPA架构体系来运行查询并实例化存储密钥、消息和区域设置的对象。因此,如果我