Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse:EJB和ManagedBean(用于JSF)_Eclipse_Ejb_Glassfish 3_Managed Bean - Fatal编程技术网

Eclipse:EJB和ManagedBean(用于JSF)

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项

我正在尝试创建一些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:

所有这些代码都放在一个企业应用程序项目中。

我使用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。