jaxws 2.1.5 на weblogic 10.3.1 вместо предустановленных jaxws 2.1.1? - PullRequest
6 голосов
/ 04 декабря 2009

Возможно ли это, и когда да, то как?

1 Ответ

11 голосов
/ 06 декабря 2009

На самом деле реализация JAX-WS, включенная в WebLogic 10.3, основана на JAX-WS RI 2.1.4, как описано в Что нового в WebLogic Server :

Реализация JAX-WS для WebLogic Server основана на эталонной реализации JAX-WS (RI) версии 2.1.4 и включает в себя усовершенствования на уровне инструментов для упрощения создания и развертывания служб JAX-WS и упрощения переход с JAX-RPC на JAX-WS. Следующие функции и улучшения доступны в JAX-WS RI 2.1.4.

Но это только примечание :) Теперь, чтобы ответить на ваш вопрос, да , это возможно. По сути, идея состоит в том, чтобы упаковать все как EAR и предоставить weblogic-application.xml, чтобы указать пакеты Java, которые необходимо загрузить из EAR, а не из загрузчика классов по умолчанию в WebLogic. Для этого выполните следующие действия:

  1. Создать EAR со встроенной в него войной
  2. В META-INF/weblogic-application.xml вашего EAR укажите

    <?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 в WEB-INF/lib вашей WAR.

Если WebLogic сообщает о проблемах с загрузкой классов, вам может потребоваться добавить больше пакетов Java в элемент prefer-application-packages.

...