【问题标题】:Why does Glassfish not recognize the jar?为什么 Glassfish 无法识别罐子?
【发布时间】:2013-11-21 02:22:41
【问题描述】:

我想在 glassfish 4 上部署一个 jar,在终端中使用命令 asadmin deploy testapp-1.0-SNAPSHOT.jar。 jar的完整布局是

/META-INF/MANIFEST.MF
/META-INF/maven/com.test/testapp/pom.properties
/META-INF/maven/com.test/testapp/pom.xml
/com/test/testapp/*.class

但每次我得到错误

remote failure: Archive type of jar was not recognized
Command deploy failed.

我用maven编译打包jar。

提前致谢。

【问题讨论】:

    标签: maven jakarta-ee glassfish


    【解决方案1】:

    似乎只有包含 Enterprise Java Bean 的单个 jar 才能被部署。

    使类成为 Enterprise Java Bean 有两种选择。

    1. 使用包javax.ejb中定义注释的组件来注释类(例如javax.ejb.Stateless

    2. 在 META-INF 目录中打包的部署描述符 ejb-jar.xml(或 glassfish-ejb-jar.xml,如果使用 Glassfish)中指定 Enterprise Java Bean,如 5.2 Packaging Enterprise Beans 中所示

    这是取自Simple Stateless with Descriptor的一个简单例子

    <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/javaee/ejb-jar_3_0.xsd"
             version="3.0">
      <enterprise-beans>
        <session>
          <ejb-name>CalculatorImpl</ejb-name>
          <business-local>org.superbiz.calculator.CalculatorLocal</business-local>
          <business-remote>org.superbiz.calculator.CalculatorRemote</business-remote>
          <ejb-class>org.superbiz.calculator.CalculatorImpl</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
        </session>
      </enterprise-beans>
    </ejb-jar>
    

    【讨论】:

      【解决方案2】:

      this post 一样,从您的代码中替换 leambda 表达式,然后重试。一定会奏效的。

      【讨论】:

      • 请在您的答案中添加代码,而不仅仅是对另一篇文章的引用。谢谢
      【解决方案3】:

      您不会将 JAR 文件部署到 Java EE 容器中。您想打包成 WAR 或 EAR 文件,它们的 WEB-INF/lib 目录中可能有 JAR 文件。

      【讨论】:

      • 你不能也部署单独的 EJB 吗?
      • 可以部署jar文件。但我的有问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2021-04-27
      • 2020-01-27
      • 1970-01-01
      相关资源
      最近更新 更多