4

我有一个关于在 Eclipse 中使用 Maven 在 Weblogic 上运行 Java EE 应用程序的基本问题。

我使用 OEPE(Oracle Enterprise pack for Eclipse),它带有一些插件,例如 m2e 和 wtp。据我所知,这个插件读取 pom 文件并基于它们构建 jar、war 和 ear 文件。

我现在做的是这样的:

我检查了自动构建选项并让这些插件创建我的 EAR 文件,然后右键单击 Eclipse 中的 weblogic 服务器实例并使用添加/删除选项将其添加到服务器,最后启动应用程序服务器。这样,当我在我的类中更改代码时,它们将被应用程序服务器选中并且热交换工作。

构建 EAR 文件的另一种方法是使用 m2e 插件:右键单击父 pom 文件并选择 maven install 然后启动应用程序服务器并使用 wls:deploy 来部署 EAR 文件。(这次我没有从 Eclipse 中将 ear 文件添加到应用程序服务器,当我在 IDE 中右键单击我的 weblogic 实例时,eclipse 也不知道那个 EAR 文件)。

据我所见,我只能将这些工件添加到使用 wtp 插件构建的服务器,而不是使用 m2e 插件的 maven 命令构建的工件。wtp 和所有这些插件(实际上只是运行 mvn -install 的 m2e 除外)的问题在于它们不能完美地工作。有时他们没有正确构建工件,有时 jar 文件已经过时并且它们没有得到更新。此外,当您在另一个 maven 项目中使用一个项目的 jar 文件时,他们会在您更改之前被 jar 文件卡住,而使用 m2e 时,它​​们会完美地构建。

现在这是真正的问题:

哪种方式是正确的热部署方式?

我错过了什么吗?使用 m2e 插件构建 ear 文件并使用 wls:deploy 进行部署是否足够?如果是这样,热插拔将如何自行发生,或者我应该每次都使用 wls:redeploy 吗?如果 m2e 足够了,那么我假设我应该放弃 wtp 插件(它不知道 pom 文件的所有插件,我有时应该在 eclipse 的生命周期管理 xml 文件中将它们标记为忽略)。

很抱歉这个问题太长了,但我希望我能把案子说清楚并得到一些帮助!

4

1 回答 1

2

让我为您提供我的清单,以使我的 Web 应用程序在 Weblogic 上热部署。此清单假定一个实现 Servlet 2.5 的 weblogic 版本,并假定您的项目是一个配置为运行 JDK 1.6 的 maven-compiler-plugin 的 maven 项目。换句话说,您的 weblogic 版本是 10.xx,并且您的 POM 包含以下代码段:

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
    <source>1.6</source>
    <target>1.6</target>
</configuration>

建立战争

使用 OEPE 插件创建一个新的 Weblogic Web 模块 Weblogic.xml 文件:

  • 不要启用弹簧扩展
  • 在 FastSwap 中:不启用类重定义
  • 记下价值

    <wls:context-root>myappcontextroot</wls:context-root> 
    

    后面热部署会用到

从项目的 Eclipse 上下文菜单执行 Maven 更新项目

执行 Maven 全新安装

对于热部署设置:

  • 在 Windows->preferences->Server->Runtime 中添加本地 weblogic 作为运行时服务器。请记住将其 Java 主页更改为 Sun JDK 而不是 JRocket 以用于开发模式。
  • 在 Server->add server 中添加本地服务器
  • 项目上下文菜单->属性->项目分面->添加分面性质
  • 确保 Jave Facet 是 1.6 版
  • 检查动态 Web 应用程序版本 2.5 并使目标运行时成为在第一步中声明的运行时服务器 + 在进一步的配置中,为“context root”提供上面提到的值“myappcontextroot”,并为“内容目录”提供值“src\main \webapp”。不要生成 web.xml 否则你的 web.xml 会被覆盖
  • 按 OK 将上述所有方面更改应用于您的项目
  • 再次打开项目上下文菜单->属性->部署程序集->添加java构建路径->Maven依赖项
  • 最后,在服务器窗口中将配置好的应用程序添加到正在运行的服务器中

请从字面上按照这些步骤进行操作,这真的很值得!

于 2013-11-06T15:59:28.837 回答