springboot 部署到 weblogic 中 jar 包冲突

网友投稿 351 2022-08-23

springboot 部署到 weblogic 中 jar 包冲突

背景

某项目,客户要求使用已有的 weblogic 部署已经开发好的 springboot,于是乎对 springboot 进行了部分配置的调整,主要包括去除 tomcat 依赖,增加启动类的处理。

一般都会比较顺利,实际上总会遇到些小问题。

本文不赘述如何在 weblogic 中部署项目,如果你有需要,可以访问参考该文章。

问题1

打包后发布到 weblogic 上启动时,如下图所示的错误:

从异常内容可以很容易判断出,这是 jar 包冲突导致的错误。

经过定位,weblogic 有个目录 ​​wls12213\oracle_common\modules\thirdparty​​,其中存放了一些第三方的默认的 jar 包,项目启动过程中默认是先加载这里的 jar 包,再加载项目工程中的 jar 包,因为你无法保证项目工程中的 jar 包和 weblogic 中的 jar 包版本刚好一致,所以就因为 jar 包版本不一致出现了比较常见的类加载冲突的问题。

查阅​​官网资料​​,weblogic 也有是解决方案的,可以通过新增并配置 weblogic.xml 文件来定义哪些类需要优先从项目工程包的 jar 包中加载。

配置方法如下:

在 springboot 项目代码和 resource 同级创建一个 webapp 目录,然后再 webapp 目录下创建 WEB-INF 目录,将 weblogic.xml 文件放在 WEB-INF 中,以 springboot-weblogic-demo 工程为例它的完整路径就是 ​​springboot-weblogic-demo\\src\main\webapp\WEB-INF\weblogic.xml​​,其内容如下:

重启 weblogic 服务,最开始就能看到我们修改后剩下的内存配置:

WLS_MEM_ARGS_64BIT 的原始值为 -Xms256m -Xmx512m,或者你也可以追加更多关于内存的设置,例如:-Xms512m -Xmx1024m -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m

我写好的 springboot-weblogic-demo 示例工程代码的地址:​​https://github.com/xzxiaoshan/springboot-weblogic-demo​​

(END)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Mbot ros编译环境安装
下一篇:【轴承故障诊断】基于matlab贝叶斯优化支持向量机轴承故障诊断(西储数据)【含Matlab源码 2027期】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~