当前位置: 首页 > 知识库问答 >
问题:

Eclipse Maven Weblogic热代码交换

宋经业
2023-03-14

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

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

我现在做的是这样的:

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

构建EAR文件的另一种方法是使用m2e插件:右键单击父pom文件并选择maven安装,然后启动应用服务器并使用wls:deploy来部署EAR文件。(这次我没有从Eclipse中向应用服务器添加ear文件,当我右键单击IDE中的weblogic实例时,Eclipse也没有意识到该ear文件)。

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

现在真正的问题是:

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

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

很抱歉这个问题这么长,但我希望我把事情说清楚了,并得到一些帮助!

共有1个答案

徐焱
2023-03-14

让我提供我的清单,让我的web应用程序热部署在Weblogic上。本清单假设weblogic版本实现Servlet 2.5,并假设您的项目是maven项目,该项目配置为运行maven编译器插件JDK 1.6。换句话说,您的weblogic版本是10。x、 x和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文件:

>

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

稍后将在热部署中使用

从项目的Eclipse上下文菜单中执行Maven update项目

执行Maven clean安装

  • 在Windows-中添加本地weblogic作为运行时服务器

请按字面意思来执行这些步骤,真的很值得!

 类似资料:
  • 在 OpenResty 中,提及热加载代码,估计大家的第一反应是 lua_code_cache 这个开关。 但 lua_code_cache off 的工作原理,是给每个请求创建一个独立的 Lua VM。即使抛去性能因素不谈,考虑到程序的正确性,也不应该在生产环境中关闭 lua_code_cache。 那么我们是否可以在生产环境中完成热加载呢? 代码有变动时,自动加载最新 Lua 代码,但是 Ng

  • 8.5.1 代码介绍 热图代码用于加载SiteMonitor JS热图脚本,在网页上正确添加热图代码后,即可实现收集用户的点击行为,利用热图呈现,颜色越深的区域表示点击越多,颜色越浅则表示点击少。 8.5.2 代码导出 后台路径:高阶报告-热图分析,输入分组名称和页面URL后,点击保存并获取代码即可。 导出的代码样例 热图基础代码: stm_clicki('require','heatmap',

  • 我正在编写一个 Java EE 应用程序,使用 Jetty 作为应用程序服务器,以便在开发过程中使用。虽然(重新)部署速度很快,但我希望Java代码更改能够立即反映在正在运行的服务器中,而无需重新启动。(我已经在使用设置来查看对静态服务内容的即时更改)。 我看到过关于使用Maven Jetty插件和设置scanInterval来重新部署web上下文的问题,但这不是我想做的。我的Jetty服务器是从

  • 开发组非常欢迎各位向我们提交PR(Pull Request),但是为了保证代码质量和统一的风格,向官方的主仓库 swoft/swoft 和 开发仓库 贡献代码时需要注意代码和 commit 格式 发起PR时的注意事项 请不要提交 PR 到各个组件仓库,它们都是 只读的 核心组件的 开发仓库 是 swoft/swoft-component 扩展组件的 开发仓库 是 swoft/swoft-ext 请

  • 在Intellij的调试会话中更新类和资源时出错。 热交换失败:[无论什么]原因。 当Intellij的热交换失败并且调试器没有更新有问题的代码时,会产生此错误。 如何解决这个问题?这样我就不必停止并再次启动调试过程。

  • 1. 安装和使用 npm install commitizen -g # 在项目中配置 commitizen init cz-conventional-changelog --save-dev --save-exact npm install -D husky @commitlint/config-conventional @commitlint/cli 在package.json中添加配置 {