【问题标题】:m2e-wtp Overlay not loading into Eclipse-published EAR or WAR filesm2e-wtp Overlay 未加载到 Eclipse 发布的 EAR 或 WAR 文件中
【发布时间】:2014-01-14 21:57:37
【问题描述】:

我无法让 Eclipse 正确地将覆盖的 WAR 本地发布到 weblogic 服务器。运行 maven clean 包会正确地组装 EAR,并导入正确的 webapp 内容。我发现了几个类似的问题,但似乎都不是最近的问题或相同的问题。

查看我的 org.eclipse.wst.common.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 并查看文件是否被添加到其他位置,但这种设置似乎根本不起作用。

【问题讨论】:

    标签: java eclipse maven weblogic overlay


    【解决方案1】:

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

    问题是由 Weblogic 直接从工作区位置提供文件引起的。这与阻止覆盖对 Tomcat 的"Serve without publishing" mode 工作的问题相同。基本上,当直接从源代码提供 web 应用程序时,m2e-wtp 提供的覆盖组件会被忽略。

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

    以下更改允许 Weblogic 执行相同操作: * 在服务器视图中,从您的 weblogic 服务器中删除 EAR * 右键单击​​ weblogic 服务器并打开属性对话框 * 转到 Weblogic > 发布 * 选择“发布为展开的存档”并按 OK * 在 weblogic 服务器上重新部署你的 EAR

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

    我注意到的一件事是,覆盖项目的更改不会立即发布。您需要在主 webapp 中进行一些虚拟更改才能看到部署的覆盖文件。

    此时,如果您希望在 weblogic 工具中看到对覆盖的更好支持,您需要联系 Oracle。

    【讨论】:

    • 太棒了。这似乎与他们发布到 weblogic 的方式有关。这让它工作了。当然,正如您所指出的,如果它立即发布更改会容易得多,但现在就这样做了。
    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 2012-02-07
    • 2012-03-21
    • 2013-01-17
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多