webservice項目部署部署到weblogic報錯之解決方案


本地tomcat部署webserivce項目正常,但是放到weblogic下卻又異常:

 <User defined listener org.springframework.web.context.ContextLoaderListener failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authWebService': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: portName.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authWebService': Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: portName
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
...

java.lang.NoSuchMethodError: portName
 at org.apache.cxf.jaxws.support.JaxWsImplementorInfo.initialize(JaxWsImplementorInfo.java:307)
 at org.apache.cxf.jaxws.support.JaxWsImplementorInfo.<init>(JaxWsImplementorInfo.java:60)
 at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:385)
....

經查,原因為weblogic自帶的weblogic.jar與CXF框架的geronimo-ws-metadata_2.0_spec-1.1.3.jar沖突所致,weblogic啟動時默認優先加載了weblogic.jar,因而無法加載geronimo-ws-metadata_2.0_spec-1.1.3.jar中的方法

解決辦法:把geronimo-ws-metadata_2.0_spec-1.1.3.jar復制到%WL_HOME%\server\lib\目錄下(%WL_HOME%一般為:wls9\bea\weblogic92\),然后修改startWebLogic.cmd文件(windows系統修改startWebLogic.cmd文件,linux系統則要修改startWebLogic.sh文件),將set SAVE_CLASSPATH=%CLASSPATH%行內容修改為:

set SAVE_CLASSPATH=%WL_HOME%\server\lib\geronimo-ws-metadata_2.0_spec-1.1.3.jar%CLASSPATH%

即使geronimo-ws-metadata_2.0_spec-1.1.3.jar優先加載即解決了沖突所致報錯的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM