xfire开发的webservice部署在weblogic8上


最近忙一个项目,webservice是用xfire开发的。在tomcat下一切正常。到客户那里时,他们要求部署在weblogic8上。结果我折腾了好久终于给部署上了,把过程分享一下。
刚装weblogic8,部署,结果报解析xml文件错,不支持GBK编码。然后google,发现weblogic的xerces版本问题,不支持GBK编码,于是copy一个新点的xercesImpl.jar到$BEA_HOME/weblogic81/server/lib下,修改startWebLogic.sh文件,在classpath中加入这个jar。
启动,可以正常解析的,新问题来了。xfire使用的javax.xml.namespace.QName和weblogic.jar(weblogic自带的)中的冲突。然后看了xfire的官方解决文档,他提供了一个qname.jar下载,并要求在WEB-INF/下新增一个weblogic.xml文件,内容如下:

java 代码
 
  1. 《!DOCTYPE weblogic-web-app PUBLIC
  2. "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
    "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"》

    《weblogic-web-app》
    《container-descriptor》
    《prefer-web-inf-classes》true《/prefer-web-inf-classes》
    《/container-descriptor》
    《/weblogic-web-app》<weblogic-web-app>

<weblogic-web-app><container-descriptor>
</container-descriptor>
</weblogic-web-app>
但是照做之后又出现了更多的包不兼容的问题,没时间了,干脆,我直接删了weblogic.jar中的QName那个class,然后把qname.jar放到classpath中,不要那个weblogic.xml文件,这次启动正常了。

但是调用webservice服务时,出现了Provider com.bea.xml.stream.MXParserFactory not found 异常,google后,发现在jsr173_1.0_ri.jar这个包中,这个jar包可以在bea的官方下载,找到http://ftpna2.bea.com/pub/downloads/jsr173.jar,放到WEB-INF/lib中,测试webservice,至此,部署正式成功。

你可能感兴趣的:(Web,xml,webservice,weblogic,Google)