用企业java bean提升

时间:2010-08-01 10:46:25

标签: java scala ejb-3.0 lift

使用企业java bean部署lift应用程序时遇到了麻烦。有一个简单的例子:

@Stateless
class TestEJB {
 def a = "hello"
}

object TestApi extends XMLApiHelper{
 @EJB
 private var bean:TestEJB = _
 def createTag(a:NodeSeq) = 
 def dispatch: LiftRules.DispatchPF = {
  case Req("test" :: Nil, "", GetRequest) =>
   () => PlainTextResponse( bean.a )
 }
}

bean.a一致的是NullPointerException,这意味着bean尚未初始化。为什么呢?

1 个答案:

答案 0 :(得分:2)

Not Lift-aware,但@EJB标准仅适用于servlet,过滤器,上下文侦听器,jsf托管bean,ejbs,webbeans和其他Java EE组件。注意JSP类由于它们的动态生成/编译,不能使用@EJB,而是必须查找EJB,即使它们在运行时在技术上被视为servlet。

作为注射的替代方法,您可以使用查找。如果您在Java EE 6服务器中,任何Java代码都可以通过其标准的“java:global”JNDI名称查找EJB。

相关问题