gpt4 book ai didi

maven - 为什么 Glassfish 无法识别 jar ?

转载 作者:行者123 更新时间:2023-12-01 07:42:10 24 4
gpt4 key购买 nike

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

提前致谢。

最佳答案

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

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

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

  2. 在打包的部署描述符 ejb-jar.xml(或 glassfish-ejb-jar.xml,如果使用 Glassfish)中指定 Enterprise Java Bean META-INF 目录如 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>

关于maven - 为什么 Glassfish 无法识别 jar ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com