JBoss 6 - 在war包中部署ejb

发布于 2024-10-20 11:13:26 字数 330 浏览 2 评论 0原文

我正在尝试使用新的 EJB3.1 功能,可以在其中部署打包在 .war 文件中的 EJB。

我使用 Maven 2.2.1 打包 EJB 模块,然后将 ejb jar 放入 war 模块中(作为依赖项)。最终的war包含一个简单的web.xml,没有任何内容,以及lib目录下的ejb jar库。然而,尽管应用程序部署正确,但容器无法识别带注释的 ejb (@Stateless)。我没有 ejb-jar.xml 描述符(我相信它在 EJB3 中是可选的)。

如果我单独部署 ejb jar(通过将其放入 JBoss 中的部署目录中),它会被部署并分配一个 jndi 名称。

我在这里错过了什么吗?

I am trying to use the new EJB3.1 feature where one can deploy an EJB packaged within a .war file.

I am using Maven 2.2.1 to package the EJB module and then dropping the ejb jar in a war module (as a dependency). The final war contains a simple web.xml with no content, and the ejb jar library in the lib directory. However, though the application is deployed correctly, the annotated ejb (@Stateless) is not recognized by the container. I have no ejb-jar.xml descriptor (which I believe is optional in EJB3).

If I deploy the ejb jar on its own (by dropping it in the deploy directory in JBoss) it is deployed an assigned a jndi name.

Am I missing something here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无言温柔 2024-10-27 11:13:26

我发现这个问题。我的 web.xml 是 2.4 版本:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

但是,对于要在 war 包中部署的 EJB,它至少需要是 3.0:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">

这主要是因为我使用 J2EE Maven 原型创建 war 模块。

I found the problem on this one. My web.xml was 2.4 version:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

However, for EJBs to be deployed in war packages, it needs to be 3.0 at least:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">

This was mainly due to the fact that I was creating my war module with a J2EE Maven archetype.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文