我在比恩的会话中尝试了几种方法,比如:
@Resource
private SessionContext ctx;
或
private SessionContext ctx;
@Resource
private void setSessionContext(SessionContext ctx) {
this.sctx = ctx;
}
或
InitialContext ic = new InitialContext();
SessionContext ctx = (SessionContext) ic.lookup("java:comp/env/sessionContext");
所有这些都不起作用,JBOSS中出现了不同的异常。
我真的很生气。任何人都可以告诉我出了什么问题。非常感谢!
3条答案
按热度按时间kzipqqlq1#
前两种解决方案(现场进样和设定器方法进样)看起来很好,应该起作用。
我对第三种方法(查找方法)有疑问,因为您没有显示相应的
@Resource(name="sessionContext")
注解,但如果使用得当,它也应该工作。第四个选项是查找标准名称
java:comp/EJBContext
这四种方法都与EJB 3兼容,并且肯定可以与4 Ways to Get EJBContext in EJB 3中提到的任何Java EE 5应用服务器一起使用。如果它们不兼容,请提供您获得的异常的完整堆栈跟踪。
nsc4cvqm2#
您可以使用下面的代码列出这些绑定,它将向您显示上下文中可用的内容。(这使用groovy代码在枚举上执行
(each)
迭代)依赖于此代码是在EJB上下文还是Web上下文中运行,您将看到不同的输出。
jdzmm42g3#
您可以按如下方式获取SessionContext:
我的JNDILookupClass如下所示:
公共类JNDILookupClass {私有静态上下文初始上下文;“”“”“”“”“”“”“”“”“”用户名和密码:用户名和密码:在这个例子中,您可以使用一个静态的字符串来表示您的请求。
}
我的jboss-ejb-client.properties如下:
我的Ejb bean如下所示:
我的Ejb接口如下: