Tag: ejb

我应该何时关闭在无状态会话bean中创建的JMS连接?

我有一个关于何时关闭在无状态会话bean(EJB)中创建的连接的一般性问题。 连接到ActiveMQ,它们是在bean的构造函数中创建的。 然后在一个方法中使用该连接,我想知道何时关闭此连接的适当时间/地点。 有一个单独的方法来关闭连接,是否必须由类使用bean调用? 或者我应该只使用它关闭方法内的连接? 我担心我可能会关闭连接然后重新使用该bean与现在关闭的连接,因为连接在构造函数中打开。 这是一些代码: @Stateless @LocalBean public class SendEventsBean { private static String brokerURL = “…….”; private static transient ConnectionFactory factory; private transient Connection connection; private transient Session session; private transient MessageProducer producer; public SendEventsBean() { factory = new ActiveMQConnectionFactory(brokerURL); try { connection = factory.createConnection(); connection.start(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); producer = […]

为什么池无状态豆?

通常我们将singleton实例用于business / dao层。 在EJB的情况下汇集无状态会话bean的原因是什么?

无法从Java SE客户端访问EJB – 查找失败错误

我正在使用Netbeans并正在尝试使用EJB。 我有两个项目(2个独立的申请) 1-一个名为EnterpriseApp的Java ME项目 2-标准Java SE项目,名为Test 现在这就是我所做的 – 在EnterpriseApp中,我使用本地和远程接口生成了一个名为TestEJB的无状态EJB。 对于远程项目选择,我选择了测试应用程序。 简而言之,bean代码看起来像这样 @Stateless public class TestEjb implements TestEjbRemote, TestEjbLocal { @Override public String Try() { return “Hello World”; } } 在Java SE客户端项目中,这里是我尝试访问bean的主要类: public class Main { public static void main(String[] args) { try { Properties props = new Properties(); props.load(new FileInputStream(“jndi.properties”)); InitialContext ctx = new InitialContext(props); […]

有状态会话beanmultithreading访问

EJB 3.2规范说明如下: 默认情况下,允许客户端对有状态会话对象进行并发调用,并且需要容器序列化此类并发请求。 请注意,容器永远不允许multithreading访问实际的有状态会话Bean实例。 对我来说,并发访问和multithreading访问似乎是等效的。 那么如何在禁止多个线程的情况下对有状态EJB进行并发调用呢?

事务TimeOut EJB对线程的影响

关于EJB的问题: 假设我有一个具有无限循环的会话bean。 它在EJB事务下运行。 现在当EJB的事务超时时,会导致无限循环线程中断或容器将停止运行无限循环的线程。

通过注释和xml上下文连接Spring bean

我有以下Spring服务: @Service public class Worker { @Autowired private MyExecutorService executor; @Autowired private IRun run; private Integer startingPoint; // Remainder omitted } 现在我想通过.properties文件加载startingPoint 。 是否可以同时通过注释和xml上下文连接Spring服务? 也许是这样的: ${startingPoint} startingPoint通过xml上下文文件连接,其他所有内容都自动连接。

将EJB和Servlet用于Web应用程序的首选方法是什么?

我正在努力熟悉JavaEE。 我对每个“组件”(缺少一个更好的词)的目的有点困惑:Session Beans和Servlets,以及它们如何与Web应用程序(客户端JavaScript)正确交互。 为了理解这一点,我正在构建一个简单的Web应用程序。 使用每个组件构建类似于以下内容的首选方法是什么: 用户访问“登录”页面 用户输入数据和点击提交。 然后我用AJAX发送请求以登录用户。 然后,服务器端validation用户输入并“记录”用户(返回用户配置文件等) 发送请求时,是将其发送到Servlet(使用EJB)还是通过WSDL发送到会话Bean? 如何使用这两种方法为该用户维护“状态”? 我认为使用Session Beans就像使用@Stateful注释它一样简单。 此外,我假设从客户端发送的请求必须是SOAP格式。 使用更轻量级的东西(比如JSON)有多容易? 虽然我更喜欢使用轻量级的东西,但是如果SOAP使开发更快/更容易,则没有必要。

@EJB从不同的jar注入

我正在尝试注入一个位于不同jar文件中的bean然后我正在尝试将其注入其中。 这两个bean都只是具有本地和远程接口的基本@Stateless bean。 如果我使用正常注射 @EJB IBean injectedBean; 要么 @EJB IBeanLocal injectedBean; 部署应用程序时,我得到一个NullPointerException。 如果我使用: @EJB(mappedName=”Bean”) IBean injectedBean; 要么 @EJB(mappedName=”Bean”) IBeanLocal injectedBean; 一切正常,JBoss不会抛出任何部署错误。 我可能会提到我使用JBoss 5。 我正在注入的bean类被声明为: @Remote public interface IBean @Local public interface IBeanLocal extends IBean @Stateless(name = “Bean”) public class Bean implements IBean, IBeanLocal 我的问题是,如文档中所指定,mappedName属性是特定于供应商的。 有没有其他方法我可以让这个工作? 解决了: 我设法解决了这个问题。 问题是我试图单独部署两个jar,这意味着每个人都会在JBoss中获得它自己的ClassLoader,这样他们就无法找到对方并在尝试注入bean时返回NullPointerException。 解决方案是将jar子添加到耳朵并添加包含application.xml的META-INF,如下所示: Simple example of application ejb1.jar ejb2.jar […]

如何防止“本地事务已经有1个非XA资源”exception?

我在无状态EJB中使用2 PU,并且在一个方法上调用它们: @PersistenceContext(unitName=”PU”) private EntityManager em; @PersistenceContext(unitName=”PU2″) private EntityManager em2; @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW ) public void getCandidates(final Integer eventId) throws ControllerException { ElectionEvent electionEvent = em.find(ElectionEvent.class, eventId); … Person person = getPerson(candidate.getLogin()); … } @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW ) private Person getPerson(String login) throws ControllerException { Person person = em2.find(Person.class, login); return person; } 这些方法使用REQUIRES_NEW transcaction进行注释以避免此exception。 当我从javaFX applet调用这些方法时,所有方法都按预期工作。 现在我试图从JAX-RS webservice调用它们(我没有看到任何逻辑上的区别,因为在初始上下文中查找了ejb两种情况)并且我一直得到这个exception。 […]

EJB3 / JPA @Transactional

是否存在与Spring的@Transactional等效的EJB或JPA注释?