Eclipse:EJB和ManagedBean(用于JSF)
我正在尝试创建一些JavaEE应用程序。基础是作为控制器的EJB。接下来,我想用JSF+ManagedBeans展示数据。问题是有 javax.servlet.ServletException:standards/SampleController java.lang.NoClassDefFoundError:standards/SampleController 代码如下所示: 托管bean(动态Web项目):WebView项目:StdSampleController.java: EJB(EJB项目):WebController项目:standards.SampleController.java: 所有这些代码都放在一个企业应用程序项目中。Eclipse:EJB和ManagedBean(用于JSF),eclipse,ejb,glassfish-3,managed-bean,Eclipse,Ejb,Glassfish 3,Managed Bean,我正在尝试创建一些JavaEE应用程序。基础是作为控制器的EJB。接下来,我想用JSF+ManagedBeans展示数据。问题是有 javax.servlet.ServletException:standards/SampleController java.lang.NoClassDefFoundError:standards/SampleController 代码如下所示: 托管bean(动态Web项目):WebView项目:StdSampleController.java: EJB(EJB项
我使用GlassFish版本3和Eclipse 3.5.2。您使用(远程)接口调用EJB,而不是它的实现。 因此,
@EJB private SampleController c;
你需要
@EJB private SampleControllerRemote c;
并相应地调整导入。您使用(远程)接口调用EJB,而不是它的实现。 因此,
@EJB private SampleController c;
你需要
@EJB private SampleControllerRemote c;
并相应地调整导入。添加到unbeli的答案中,请从代码中删除以下内容:
public StdSampleController() {
c = new SampleController();
value = c.getValue();
}
这是错误的。在您描述的情况下,
c
将由容器注入对EJB的引用。不要自己通过new()操作符实例化EJB。添加到unbeli的答案中,请从代码中删除以下内容:
public StdSampleController() {
c = new SampleController();
value = c.getValue();
}
这是错误的。在您描述的情况下,
c
将由容器注入对EJB的引用。不要自己通过new()操作符实例化EJB。事实上,或者根本不定义接口,或者定义本地接口,因为您似乎是从同一JVM中调用EJB bean。事实上,或者根本不定义接口,或者定义一个本地接口,因为您似乎是从同一个JVM中调用EJB bean。