背景 某项目,客户要求使用已有的 weblogic 部署已经开发好的 springboot,于是乎对 springboot 进行了部分配置的调整,主要包括去除 tomcat 依赖,增加启动类的处理。 一般都会比较顺利,实
背景某项目,客户要求使用已有的 weblogic 部署已经开发好的 springboot,于是乎对 springboot 进行了部分配置的调整,主要包括去除 tomcat 依赖,增加启动类的处理。 一般都会比较顺利,实际上总会遇到些小问题。 本文不赘述如何在 weblogic 中部署项目,如果你有需要,可以访问https://www.jb51.net/article/218458.htm 参考该文章。
问题1打包后发布到 weblogic 上启动时,如下图所示的错误: 从异常内容可以很容易判断出,这是 jar 包冲突导致的错误。 经过定位,weblogic 有个目录 wls12213oracle_commonmodules hirdparty,其中存放了一些第三方的默认的 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\srcmainwebappWEB-INFweblogic.xml,其内容如下:
问题2部署的过程中还出现了 GC 错误 GC overhead limit exceeded,这个问题比较容易解决,给 weblogic 启动环境修改内存值,调大一些即可。 修改对应文件 D:weblogicmw_12.2.1.3.0_wls_quick_Disk1_1of1wls12213user_projectsdomainsase_domaininsetDomainEnv.cmd,大约在 200 行出头的位置,修改后的内容如下:
重启 weblogic 服务,最开始就能看到我们修改后剩下的内存配置:
我写好的 springboot-weblogic-demo 示例工程代码的地址:https://github.com/xzxiaoshan/springboot-weblogic-demo |
2021-06-05
2021-05-27
2021-05-26
2021-06-05
2021-05-16