weblogic 部署应用时jar包冲突的解决办法

weblogic部署应用时会优先检查自身的jar包,再检查工程里的,如果发现工程里有重复的就会报错。

目 前发现在电子印章2.0基础上开发的太平人寿项目在部署时会报“java.lang.LinkageError:loader constraint violation: loader (instance ofweblogic/utils/classloaders/ChangeAwareClassLoader) previously initiatedloading for a different type with name "javax/xml/namespace/QName””异常,解决办法是:在WEB-INF下新建一个名为“weblogic.xml”的文件,内容 为

 

<?xmlversion="1.0" encoding="UTF-8"?>

<wls:weblogic-web-appxmlns:wls="http://www.bea.com/ns/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/web-app_2_5.xsd http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">

   <wls:weblogic-version>12.2</wls:weblogic-version>

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

   <container-descriptor>

        <prefer-application-packages>

              <package-name>org.apache.commons.*</package-name>

              <package-name>org.apache.log4j.*</package-name>

              <package-name>org.slf4j.*</package-name>

        </prefer-application-packages>

   <!--<prefer-web-inf-classes>true</prefer-web-inf-classes> -->

   </container-descriptor>

</wls:weblogic-web-app>

 

即可预先加载冲突的类避免异常。

阅读更多

jboss-eap-5.1下部署用时Jar包冲突的解决方案

02-20

最近负责了几个项目,应公司运维部的要求,需要把jboss4.0.5GA升级到jboss-eap-5.1,在升级过程中也出现了一些波折,主要问题就是Jar包冲突的问题,我们都知道jboss-eap-5.1以后的版本集成了很多开发的而且我们平时又需要用到的Jar包,在做项目时项目中已有了这些包,部署后应用就启不启来,报各种Jar包冲突错误, 解决这类错误的方法是改变jboss-eap-5.1的Jar包加载顺序,在加载应用时,先加载应用中lib下的Jar,解决方法是在WEB-INF目录下新建jboss-web.xml文件,文件内容如下:rn rn rnrnrncom.example:archive=test.warrnjava2ParentDelegaton=truernrnrnrnrn 在项目中加入jboss-web.xml后可以解决99%的Jar冲突,但有一种例外,那就是项目中使用了CXF WebService,虽然在项目启动时不会报错,但在实际调用WebService时会报以下错误:rnCaused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: java.lang.RuntimeException: Cannot create a secure XMLInputFactoryrn 如果开发员对jboss-eap-5.1各种参数都很了解的话,解决起来也不是难事,不熟就有点麻烦,呵呵,我就是不熟的那种,花了两三天,找了各种资料最后在一位运维的同事帮助下才解决这个问题,其实也很简单,只要修改一下jboss的启动参数就可以了,方法如下:rn打开%JBOSS_HOME%lib/run.conf文件,在JAVA_OPTS的值的参数后面追加上“ -Dorg.apache.cxf.stax.allowInsecureParser=true”便可解决这个问题。rnrn这两个小方法可以帮助到其他同行。

没有更多推荐了,返回首页