java - 使用企业 Java Bean 提升

标签 java scala ejb-3.0 lift

我在使用企业 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/

相关文章:

scala - scala 中是否有一些扩展版本的 unzip 适用于任何 List[n-tuple] 而不是像 Unzip 那样仅适用于 List[pairs]?

java - 当正确回答时,在 GridView 中的图像上设置刻度线

scala - 初学者:Scala 2.10中的Scala类型别名?

java - 终止参与者层次结构

javascript - 获取原始字符串以用于 Play Framework 2.0 中的 Javascript

java - ExecutorService 与异步注解

java - 我应该为我的业务层使用 EJB3 还是 Spring?

java - 从远程 EJB 方法返回返回类型的父类(super class)

java - JPanel 一侧的虚线边框

java - for each 循环中 if 语句的返回值