weblogic.xml的配置-项目发布jar包冲突

weblogic.xml配置


前些天在项目调试的时候,发现项目在本地eclipse上跑的时候,项目中发布的接口是可以正常调用的(tomcat容器) ,然后部署到服务器上接口调用报错。(linux系统,weblogic 12c)
后来经过一步步排除问题,发现是weblogic本身自带的jar和我项目里的jar冲突了。(足足折腾了我好几个小时。。。)
我在部署的时候,没有将weblogic.xml加上。导致问题。
下面是weblgic的具体配置:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
        xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
        http://xmlns.oracle.com/weblogic/weblogic-web-app
        http://xmlns.oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd">
	<wls:context-root>/xxgx</wls:context-root>
    <wls:container-descriptor>
        <optimistic-serialization>true</optimistic-serialization>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <show-archived-real-path-enabled>true</show-archived-real-path-enabled>
		<prefer-application-packages>
			  <package-name>javax.validation.*</package-name>
			  <package-name>org.hibernate.*</package-name>
			  <package-name>org.javassist.javassist.*</package-name>
		</prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

注意: true 和 只能配置一个
然后我又将prefer-web-inf-classes 改为true,删掉prefer-application-packages的配置。然后重启项目,报如下错误:
在这里插入图片描述
prefer-web-inf-classes 如果改为true ,则表示jar包仅仅从发布项目的里边的,如果没有也不会用weblogic的jar包。
所以由此看来,我的项目发布是用到了weblgic的jar了。
翻开weblogic的jar可以看到,缺失的应该就是如下这些jar:
在这里插入图片描述
如果把这些jar放到项目下,然后再将prefer-web-inf-classes 设置为true的话应该是可行的.如果不配置weblogic.xml的话,默认为false。(本人没有去尝试,也没有必要了。)

而prefer-web-inf-classes配置为false, 再去配置prefer-application-packages ,里边的jar .
则表示凡是配置的是优先级高的,然后没有的仍会用weblogic中的jar.
这样才解决jar包冲突的问题。

猜你喜欢

转载自blog.csdn.net/fanbaodan/article/details/88377536