在Weblogic 10.3.1上使用Jaxws 2.1.5而不是预装的Jaxws 2.1.1?

6

是否可能,如果是,怎么做?

1个回答

11
实际上,WebLogic 10.3中捆绑的JAX-WS实现基于JAX-WS RI 2.1.4,正如在WebLogic Server新特性文档中所述:

WebLogic Server的JAX-WS实现基于JAX-WS参考实现(RI)版本2.1.4,并包括增强的工具层,以简化JAX-WS服务的构建和部署,并简化从JAX-RPC到JAX-WS的迁移。下列功能和增强项可从JAX-WS RI 2.1.4获取。

但这只是一个小注释 :) 现在,回答你的问题,是的,这是可能的。基本思路是将所有内容打包成EAR并提供一个weblogic-application.xml来指定需要从EAR而不是WebLogic默认类加载器加载的Java包。要做到这一点,请按照以下步骤操作:

  1. 创建一个内嵌war的EAR
  2. 在EAR的META-INF/weblogic-application.xml中,加入以下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <weblogic-application>
      <application-param>
        <param-name>webapp.encoding.default</param-name>
        <param-value>UTF-8</param-value>
      </application-param>
      <prefer-application-packages>
        <package-name>com.sun.xml.*</package-name>
        <package-name>javax.xml.bind.*</package-name>
        <package-name>javax.jws.*</package-name>
        <package-name>javax.xml.soap.*</package-name>
      </prefer-application-packages>
    </weblogic-application>
    
  3. 将需要的JAR放入WAR的WEB-INF/lib目录中。

如果WebLogic报告类加载问题,您可能需要在prefer-application-packages元素下添加更多Java包。


非常有用的答案,谢谢。我的版本jaxws 2.1.1被wsimport -version回显。 - Gerard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接