当前位置: 首页 > 知识库问答 >
问题:

ejb-jar.xml中缺少值

封德华
2023-03-14

当尝试在glassfish 4.0(使用netbeans 7.3.1)中部署一个mavenized entreprise应用程序(包括war和jar项目)时,我遇到了与该问题类似的问题,即jar无效,因为它包含零ejb(这不是真的,因为我的应用程序jar包含4个实体类及其相应的会话bean和本地接口)。由于那篇文章中的解决方案是添加ejb-jar.xml,所以我也添加了我的部署描述符,编写如下:

<?xml version="1.0" encoding="UTF-8"?>
   <ejb-jar xmlns = "http://java.sun.com/xml/ns/javaee" 
         version = "3.1"
         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/ejb-jar_3_1.xsd">


    <enterprise-beans>

        <session>
            <ejb-name>EnginDao</ejb-name>
            <ejb-class>com.crystaleez.dao.EnginDao</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
        </session>

        <session>
            <ejb-name>AdresseDao</ejb-name>
            <ejb-class>com.crystaleez.dao.AdresseDao</ejb-class>
            <session-type>Stateless</session-type>
            <transaction-type>Container</transaction-type>
        </session>

        <session>
            <ejb-name>AutomobilisteDao</ejb-name>
            <ejb-class>com.crystaleez.dao.AutomobilisteDao</ejb-class>
            <transaction-type>Container</transaction-type>
            <session-type>Stateless</session-type>
        </session>

        <session>
            <ejb-name>GaragisteDao</ejb-name>
            <ejb-class>com.crystaleez.dao.GaragisteDao</ejb-class>
            <transaction-type>Container</transaction-type>
            <session-type>Stateless</session-type>
        </session>


    </enterprise-beans>


</ejb-jar>

因此,我得到了以下异常:在部署应用程序时发生的异常,ejb-jar.xml的内容无效,并且需要“{”http://java.sun.com/xml/ns/javaee“:interceptors,”http://java.sun.com/xml/ns/javaee“:relationships,”http://java.sun.com/xml/ns/javaee“:assembly-descriptor,”http://java.sun.com/xml/ns/javaee“:ejb-client-jar}”中的一个值(对于我来说,它是法语的,我无法找到更改netbeans中glassfish日志记录的方法

我的项目中没有任何这些值(实际上,我不知道什么是拦截器,也不知道异常所说的其他必需值)(我不知道为什么ejb-jar.xml是强制性的,也不知道为什么没有办法自动生成它),我只需要成功地部署我的项目。

多谢帮忙!

共有1个答案

锺离伟彦
2023-03-14

问题可能是,在最后两个声明中,session-typetransaction-type的顺序不同。请尝试以下操作:

    <session>
        <ejb-name>AutomobilisteDao</ejb-name>
        <ejb-class>com.crystaleez.dao.AutomobilisteDao</ejb-class>
        <session-type>Stateless</session-type>
        <transaction-type>Container</transaction-type>
    </session>

    <session>
        <ejb-name>GaragisteDao</ejb-name>
        <ejb-class>com.crystaleez.dao.GaragisteDao</ejb-class>
        <session-type>Stateless</session-type>
        <transaction-type>Container</transaction-type>
    </session>
 类似资料:
  • 我试图在ejb-jar.xml中配置EJB2.1MDB。我的问题是没有明确的方法来指定MDB要侦听的目标(队列名)。我穷尽了网络,没有找到任何有用的信息。

  • 我的主要目标是将一个为 WebSphere 编写的 EJB 2.x 应用程序迁移到一个可为 Tomcat 服务器部署的 Web 应用程序。但我想这几乎是一对一的迁移。 所以我设置了一个TomEE (apache-tomee-plus-1.0.0)并将子目录'/apps '的配置保存为部署目录。 当我放一个“*”时。war文件到“/apps”目录OpenEJB成功解压缩存档并加载它。但我在日志中没有

  • 问题内容: 我目前正在使用Java中的SQL。最近我收到此错误: 当我在连接字符串中添加参数时,会发生这种情况。该错误消息清楚地表明缺少sqljdbc_auth.dll,因此我尝试将dll放在与保留sqljdbc4.jar相同的路径中。 但是,这行不通,所以我想知道如何将这个dll添加到构建路径中?有特殊的方法吗? 问题答案: 好的,我发现了!我并不需要更改java.library.path,而是

  • 问题内容: 在从openni编译演示时,我偶然发现了此错误: 我在Mac上执行此操作。我最好的猜测是该文件不在我的java.library.path中 我现在的问题是:这个猜测正确吗,以及如何在netbeans中添加到java.library.path中。 提前Thx 问题答案: 将此添加到projects属性的VM选项中:-Djava.library.path = / Users / olivi

  • 问题内容: 我使用以下命令在Ubuntu 12.04上安装了一个名为RYU的openflow控制器: 我试图使用ryu-manager运行python文件,如下所示。 然后我尝试使用以下方法安装gevent: 此错误的原因是什么?我试图找到使用,但没有成功。但是的输出是 系统上应该有吗?如果是这样,我应该安装什么来获得它? 问题答案: 应该这样做: 它将安装所有缺少的标题。这对我帮助很大。

  • 当我使用创建一个新的虚拟环境时,它会按照预期使用创建虚拟环境,但缺少: 到底是怎么回事?不应该有一个二进制文件吗?