我正在尝试实现用于测试EJB的jUnit。如果我使用JNDI上下文一次,测试就能正常工作。但是,如果我第二次使用上下文为,则会得到以下异常:
java.lang.IllegalStateException: No EJB receiver available for handling
[appName:Name, moduleName:NameEJB, distinctName:] combination for
invocation context org.jboss.ejb.client.EJBClientInvocationContext
at org.jboss.
各位朋友:
每当新版本的JBoss面世时,我都不得不重新学习并浪费时间在这些东西上,这让我非常恼火。
我有一个在JNDI空间中发现和声明的无状态EJB:
10:01:53,044 INFO [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:
DTalk/UserManager/local - EJB3.x Default Local Business Interface
DTalk/UserManager/local-
我有一个接口:
public interface Service {
void doService();
}
和一个类:
public class ServiceUser {
@Inject
@Any
private Instance<Service> serviceImplementations;
public void work() {
serviceImplementations.forEach(service -> service.doService());
}
}
和一个测试用例:
public cl
JPA2.x,容器管理事务,容器托管依赖注入
伪码:
@Transactional(Required)
public class EJB1 {
@PersistenceContext
EntityManager em1;
@Inject
EJB2 ejb2;
public void callSecondEjb(){
MyEntity e = ejb2.returnEntity();
}
}
@Transactional(Requires_New)
public class EJB2 {
@PersistenceContext
E
要使Servlet、JSP、JSF等使用远程,执行资源注入是必不可少的。然而,JSP采用不同于其他EJB的方式将EJB注入其中。让我们以身作则吧。
在JSF中,可以以非常简单的方式注入远程EJB,如下面的ManagedBean所示。EJB可能是有状态的、无状态的或单一的。
假设由会话bean实现的接口是CustomerBeanRemote
@ManagedBean
@RequestScoped
public class AddSubscription
{
@EJB
private CustomerBeanRemote obj=null;
//Getters and
我正在开发一个Java EE 6应用程序。刚开始时,我正在为EJB类编写测试,方法是手动实例化EJB,然后手动添加通常由依赖项注入提供的成员。随着应用程序变得越来越复杂,我发现这种方法并不能解决问题。因此,我希望能够在测试框架中启动自己的EJB容器,这样它就可以管理我的bean。解决这个问题的最好方法是什么?我听说过javax.ejb.embeddable.EJBContainer,还有别的选择吗?
(我正在使用Glassfish 3,并使用Maven构建,如果这有什么不同的话。)