這幾天搞webservice搞得暈死了,在Weblogic 7里面發(fā)布Web Application,怎么都不成功,一怒之下又裝Weblogic8,但是在本機(jī)都可以的,又找了其它測(cè)試機(jī)器,也可以,就是有一臺(tái)不行,后來終于在Axis官方網(wǎng)站發(fā)現(xiàn)線索:WebLogic 8.1 ships with webservices.jar that conflicts with Axis' saaj.jar and prevents Axis 1.2 from working right out of the box. This conflict exists because WebLogic uses an older definition of javax.xml.soap.* package from Java Web Services Developer Pack Version 1.0, whereas Axis uses a newer revision from J2EE 1.4.
當(dāng)然了,解決方案也就有了:
However, there are two alternative configuration changes that enable Axis based web services to run on Weblogic 8.1.
In a webapp containing Axis, set <prefer-web-inf-classes> element in WEB-INF/weblogic.xml to true. An example of weblogic.xml is shown below:
<weblogic-web-app>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>If set to true, the <prefer-web-inf-classes> element will force WebLogic's classloader to load classes located in the WEB-INF directory of a web application in preference to application or system classes. This is a recommended approach since it only impacts a single web module.
In a script used to start WebLogic server, modify CLASSPATH property by placing Axis's saaj.jar library in front of WebLogic's webservices.jar.
雖然這里說的 是Weblogic8.1,其實(shí)是說Weblogic8.1以前的版本都會(huì)有問題。