gpt4 book ai didi

EJB 无状态 session Bean - 无法创建错误

转载 作者:行者123 更新时间:2023-12-04 06:27:44 24 4
gpt4 key购买 nike

首先让我指出,虽然我已经使用 Java SE 有一段时间了,但这是我第一次涉足 Java EE 领域。我正在使用 Netbeans 6.9 和 Netbeans 代码生成器来完成大部分繁重的工作(更多关于这方面的内容)。 GlassFish 的版本是 3 - 下载 Netbeans 时附带的标准版本。

我创建了一个无状态 session Bean 来返回一个简单的字符串,如下所示:

@Stateless
public class SDBSStatelessSessionBean implements SDBSStatelessSessionBeanRemote {

@Override
public String sayHello() {
return "This seems to be working just fine.";
}
}

接口(interface)定义为:
@Remote
public interface SDBSStatelessSessionBeanRemote {

String sayHello();
}

类和接口(interface)都是使用 Netbeans 提供的“插入代码”功能创建的。我认为这样可以避免犯任何愚蠢的新手错误(哦,具有讽刺意味)。

我的问题是当我尝试从 servlet 调用 Enterprise bean 时(调用是使用 Netbeans 代码生成器中的“Call Enterprise Bean”选项添加的)我收到以下错误:
javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB

异常是由以下原因引起的:
NoClassDefFoundError

这是 servlet 进行调用的方式:
@EJB
private SDBSStatelessSessionBeanRemote sDBSStatelessSessionBean;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Test Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>" + sDBSStatelessSessionBean.sayHello() +"</p>");
out.println("</body>");
out.println("</html>");
} catch (Exception e) {
out.println("<p>" + e.getMessage() + "</p>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}

恐怕在广泛的谷歌搜索之后我无法找到这个问题的解决方案(主要是因为似乎接近这个问题的少数论坛帖子包含太多行话,我无法遵循解决方案)。

我非常感谢任何建议/帮助指出我正确的方向。

最佳答案

如果这是一个本地 EJB(在与您的 servlet 相同的 JVM/EE 容器中),您可以尝试将您的 EJB 声明为 @LocalBean (在 @Stateless 注释下)。您也可以删除 @Remote接口(interface)(并使您的 EJB 没有记录器实现它)。

所以你的 EJB 会变成

@Stateless
@LocalBean
public class SDBSStatelessSessionBean
{
public String sayHello()
{
return "This seems to be working just fine.";
}
}

关于EJB 无状态 session Bean - 无法创建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5838427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com