由于Weblogic中包含的相關JWS及JAX-RPC實現的影響使得我們在其中部署相關CXF應用時總是會遇到一些棘手的問題,本人根據自己的實踐經驗將其中一些注意事項作了一下總結。
1 以EAR形式部署
將CXF的應用以WAR的形式包含在EAR中,在EAR的META-INF中的配置文件application.xml中聲明你的WAR,并在weblogic-application.xml中加入以下內容:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application xmlns="http://www.bea.com/ns/weblogic/90">
<application-param>
<param-name>webapp.encoding.default</param-name>
<param-value>UTF-8</param-value>
</application-param>
<prefer-application-packages>
<package-name>javax.jws.*</package-name>
</prefer-application-packages>
</weblogic-application>
這個配置是告訴應用服務器的類裝載器對于該EAR而言優先使用該EAR中javax.jws.*的實現。
2 在應用服務器啟動時加入Java VM參數
-Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
好了現在一切搞定!
(蔡超 chaocai2001@yahoo.com.cn)