我想在终端上使用命令asadmin deploy testapp-1.0-SNAPSHOT.jar
在glassfish 4上部署一个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。
提前致谢。
答案 0 :(得分:6)
似乎只有个别jar包含Enterprise Java Bean才能部署。
有两种方法可以使类成为Enterprise Java Bean。
使用从javax.ejb
包中定义注释的组件注释类(例如javax.ejb.Stateless
)
在5.2 Packaging Enterprise Beans
中所示的META-INF目录中的部署描述符ejb-jar.xml
(或glassfish-ejb-jar.xml
,如果使用Glassfish)中指定Enterprise Java 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>
答案 1 :(得分:2)
您不会将JAR文件部署到Java EE容器中。您希望打包WAR或EAR文件,该文件可能在其WEB-INF / lib目录中包含JAR文件。
答案 2 :(得分:0)
与this post一样,从代码中替换leambda表达式,然后重试。会工作,我敢肯定。