m2e-wtp-Overlay未加载到Eclipse发布的EAR或WAR文件中



我很难让Eclipse在本地将重叠的WAR正确发布到weblogic服务器。运行maven clean包可以正确地组装EAR,并导入正确的webapp内容。我发现了几个类似的问题,但似乎都不是最近的问题或同一个问题。

在我的org.eclipse.wst.comcommon.component文件中,覆盖资源的依赖模块也正确生成。

我使用的是m2e wtp 1.0.1.20130911-1545

我是否需要进行额外的配置才能让服务器发布来读取覆盖?

使用更多信息进行编辑:以下是WARs pom.xml 的摘录

<dependencies>
<dependency>
<groupId>com.abc</groupId>
<artifactId>core-webcontent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>war</type>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<overlays>
<overlay>
<groupId>com.abc</groupId>
<artifactId>core-webcontent</artifactId>
</overlay>
</overlays>
</configuration>
</plugin>
</plugins>
</build>

以下是组件文件的摘录

<dependent-module deploy-path="/" handle="module:/overlay/prj/core-webcontent?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/" handle="module:/overlay/slf/?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
<dependency-type>consumes</dependency-type>
</dependent-module>

我尝试在本地对EAR进行导出,这样我就可以查看EAR并查看文件是否被添加到不同的位置,但在这种类型的设置中,这似乎根本不起作用。

我尝试了JBoss AS 7.x/Wildfly 8.w,没有遇到任何问题。我下载了Weblogic进行尝试(我从未使用过它),我可以确认您看到的行为。

此问题是由Weblogic直接从工作区位置提供文件引起的。这与阻止覆盖在Tomcat的"无发布服务"模式下工作的问题相同。基本上,当直接从源代码为web应用程序提供服务时,m2e wtp提供的覆盖组件会被忽略。

JBoss服务器和Tomcat的默认模式支持重叠,因为Web应用程序发布到另一个位置并从那里提供服务。发布步骤允许添加覆盖文件,然后提供覆盖文件。

以下更改允许Weblogic执行相同操作:*在servers视图中,从weblogic服务器中删除EAR*右键单击weblogic服务器,打开"属性"对话框*转到Weblogic>发布*选择"发布为分解档案",然后按"确定"*在weblogic服务器上重新部署EAR

它现在应该从[workspace/path]/.metadata/.plugins/org.eclipse.core.resources/.products/[earproject]/beadeep/[domain]/[earproject[/提供服务

不过,我注意到的一件事是,覆盖项目的更改不会立即发布。您需要在主Web应用程序中进行一些虚拟更改,以查看要部署的覆盖文件。

在这一点上,如果您想在weblogic工具中看到对覆盖层的更好支持,您需要联系Oracle。

最新更新