java - Weblogic:在 ejb-jar 文件中找不到 EJB

标签 java jakarta-ee deployment ejb weblogic

当我尝试将 Java EE 项目部署到 weblogic 12c 时,出现以下错误

No EJBs found in the ejb-jar file

但是,只有当我部署 EAR 源文件夹并让 weblogic 编译它(分割开发目录)时才会发生这种情况。如果我首先使用 ant 构建 EAR 并部署它,它部署得很好。

我认为这个问题与 EJB 模块具有两个注释和 ejb-jar.xml 这一事实有关。描述符存在。其他一切都通过注释处理,并且 ejb-jar.xml刚刚介绍了ejb-client-jar就这样。

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
  <display-name>EJB</display-name>
  <ejb-client-jar>EJBClient.jar</ejb-client-jar>
</ejb-jar>

此外,weblogic-ejb-jar.xml用于附加配置。

但是在这种情况下,是什么导致预构建的 EAR 和源部署的行为不同以及如何解决该问题?应用程序正在使用 Java EE 5 和 EJB 3.0。

最佳答案

我刚刚遇到了类似的问题。我通过添加创建“ejb-jar.xml”文件并将其放在 project->src->resources->META-INF 下解决了这个问题。

内容如下:

<ejb-jar 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/j2ee/ejb-jar_3_0.xsd"
     version="3.0">

    <enterprise-beans>
        <session>
            <ejb-name>className </ejb-name>
            <ejb-class>packageName.className</ejb-class>
            <session-type>Stateless</session-type>
        </session>
    </enterprise-beans>
</ejb-jar>

关于java - Weblogic:在 ejb-jar 文件中找不到 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45371784/

相关文章:

java - 在 ServletContext 中临时保存用户密码的想法有什么本质上的错误吗?

java - ClassNotFoundException 成为检查异常的原因

java - EJB 3.0 测试客户端在没有 maven 的情况下工作,但没有

java - 同步和@Transactional 让我困惑

deployment - Go-CD:使用模板时自动触发管道与手动触发

angular - 在运行时更改 Angular 5 发布 url

python - 基于 Django 的网站的好方法,如果需要安装先决条件

java - POST 方法中 JSON 中的无关后缀数据

java - 使用路径列表从 SSH 查询大量文件

jakarta-ee - (如何)从 $CATALINA_{HOME|BASE}/lib 中的类访问/WEB-INF/{lib|classes} 中的 jar