我在使用企业 Java Bean 部署电梯应用程序时遇到了麻烦。有一个简单的例子:
@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
没有很好地初始化。为什么?
最佳答案
不是 Lift-aware,但 @EJB 仅适用于 servlet、过滤器、上下文监听器、jsf 托管 bean、ejbs、webbeans 和其他 Java EE 组件。注意 JSP 类,由于它们的动态生成/编译,不符合使用 @EJB 的条件并且必须改为查找 EJB,即使它们在技术上在运行时算作 servlet。
作为注入(inject)的替代方法,您可以使用查找。如果您在 Java EE 6 服务器中,任何 Java 代码都可以通过其标准的“java:global”JNDI 名称查找 EJB。
关于java - 使用企业 Java Bean 提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3381716/