1、如果包的结构不是很复杂,那么可以让应用程序的包先加载。
在web-info目录新建weblogic.xml文件
true
如此方式可以解决包冲突的问题,使得当发生jar冲突的时候,可以优先加载应用程序的jar包。
2、如果包比较多,不便采用以上方式。
1、将geronimo-ws-metadata_2.0_spec-1.1.2.jar放入jre-lib-endorsed目录。(解决port问题)
2、将wstx-asl-3.2.9.jar放入domain/server/lib下(解决com.ctc.wstx.stax.WstxInputFactory问题)
3、在类中加入static {
System.setProperty("javax.xml.stream.XMLInputFactory", "com.ctc.wstx.stax.WstxInputFactory");
System.setProperty("javax.xml.stream.XMLOutputFactory", "com.ctc.wstx.stax.WstxOutputFactory");
System.setProperty("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.evt.WstxEventFactory");
}
解决(supportDTD的问题)
采用以上方式可以正常启动,但是在weblogic环境下用此方式JaxWsDynamicClientFactory.newInstance().createClient("http://*?wsdl");
就会报错, [ERROR] IOException during exec() of compiler "javac". Check your path environment variable.此问题好像是weblogic的一个bug,我一直没有解决。
http://middleware123.com/weblogic/docs100/issues/known_resolved.html
其他方式和环境时可以使用的。