我正在使用JSF框架和一个公开EJB的独立应用程序服务器来运行Web应用程序。 我尝试做的是与JSF托管bean中的EJB进行交互,但我得到的结果如下:
没有可用于处理组合的EJB接收器 调用上下文 org.jboss.ejb.client.EJBClientInvocationContext@4d8d3512
当我尝试在使用JNDI查找检索的EJB代理上调用方法时会发生这种情况。
有两个有趣的事实:
所以这可能与JSF bean生命周期有关。
这是JSF bean:
@ManagedBean
@ApplicationScoped
public class UserMgr {
IManager mgr;
@PostConstruct
public void init() {
try {
// JNDI lookup for EJB with IManager interface
mgr = ServiceLocator.getRemoteService(IManager.class);
} catch (NamingException e) {
e.printStackTrace();
}
}
public UserDTO getUser(long uid) {
//This call throws the exception (sometimes)
return mgr.getUser(uid);
}
}
我在GlassFish 4.1上使用JSF 2.2