WebLogic部署使用war包部署应用过程中出现的问题及解决办法汇

时间:2024-04-02 16:40:14

1:应用使用的jpa  jar包和webLogic自身使用的jar包冲突。

分析:在应用本身使用jar包和weblogic自身使用jar部署冲突后会报一下错误:

java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode

或者

javax.validation.ValidationException: HV000041: Call to TraversableResolver.isReachable() threw an exception

解决:通过分析和代码跟踪后发现jar的加载顺序出现问题,冲突的jar包为

geronimo-jpa_2.0_spec-1.1.jar或者hibernate-jpa-2.0-api.jar

这个根据应用使用的具体jpa jar为例。

只需要让weblogic在运行加载jar的时候优先加载web程序使用的jar包即可。

上传web程序冲突的jarr包到指定目录下,然后进入webLogic的安装目录如下:

/home/emic/weblogic103/wlserver_10.3/common/bin

找到commEnv.sh,然后找到weblogic_classpath的地方将你冲突jar的路径添加上重启weblogic即可。如果是weblogic集群环境如下图:

WebLogic部署使用war包部署应用过程中出现的问题及解决办法汇

需要在节点的“服务器启动”项里“类路径”里添加上冲突web应用的jar包的地址重启集群即可。

 

注意!!!!!!!!!

这种方式有时候在单机环境下是没法解决掉jar包冲突的,此时可以找到weblogic的安装目录,比如

/home/wls1036/modules 下面的 javax.persistence_1.0.0.0_1-0-2.jar 将此jar包删除或者重命名,然后重新启动weblogic。

至此web应用和weblogic本身的jar包冲突问题解决。