我正在尝试在我的本地PC上部署Netbeans / Glassfish项目。它目前正在生产中
项目似乎是基于此网址上的文档构建的企业应用程序:
https://netbeans.org/kb/docs/javaee/maven-entapp.html#intro
该项目有以下5个模块:
WI-EAR
WI-EJB
WI-Enterprise
WI-ENT-web
WE-Web
根据上面引用的教程,用于从Netbeans运行和部署的项目是“-EAR”项目。
当我右键单击WI-EAR项目节点并选择Build with Dependencies时,根据教程,我得到了这个结果:
Reactor Summary:
WI-EJB ............................................ SUCCESS [0.723s]
WI-Enterprise ..................................... SUCCESS [0.004s]
Wi-LIB ............................................ SUCCESS [0.288s]
WI-ENT-web ........................................ SUCCESS [3.012s]
WI-EAR ............................................ SUCCESS [1.520s]
------------------------------------------------------------------------
BUILD SUCCESS
我可以在“目标”目录中看到创建的.ear文件,名称为“WI-EAR”。
到目前为止一切顺利。接下来,再次根据教程,我在“项目”窗口中右键单击EAR项目节点,然后选择“运行”。
但是,此时,GlassFish控制台显示以下错误:
SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Expected to find an expanded directory for submodule WI-EJB-1.0-SNAPSHOT.jar but found a JAR. If this is a directory deployment be sure to expand all submodules.
通过单击Netbeans中的“WE-EAR.ear”文件,我可以看到它实际上确实包含“WI-EJB-1.0-SNAPSHOT.jar”,而不是扩展目录。我该如何解决这个问题?
答案 0 :(得分:3)
必须更改EAR的pom.xml以包含下面的模块部分 - 请注意“解压缩”命令。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<version>5</version>
<modules>
<webModule>
<groupId>com.mycompany</groupId>
<artifactId>WI-ENT-web</artifactId>
<unpack>true</unpack>
<!--<contextRoot></contextRoot>-->
</webModule>
<ejbModule>
<groupId>com.mycompany</groupId>
<artifactId>WI-EJB</artifactId>
<unpack>true</unpack>
</ejbModule>
</modules>
</configuration>
</plugin>
</plugins>
ALSO
在依赖项部分下,确保声明类型 - 在我的情况下,问题是没有指定“ejb”类型。
<dependencies>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>WI-ENT-web</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.mycompany</groupId>
<artifactId>WI-EJB</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
</dependencies>