3

我想使用asadmin deploy testapp-1.0-SNAPSHOT.jar终端中的命令在 glassfish 4 上部署一个 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。

提前致谢。

4

3 回答 3

6

似乎只有在包含 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 打包 Enterprise Bean中所示

这是取自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>
于 2014-03-17T07:21:43.633 回答
2

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

于 2013-11-08T23:44:06.707 回答
0

就像在这篇文章中一样,从您的代码中替换 leambda 表达式,然后重试。会工作的,我敢肯定。

于 2015-10-27T20:46:47.330 回答