Клиент AXIS2 не работает в Websphere

#java #websphere #axis2

#java #websphere #axis2

Вопрос:

Я развернул приложение, содержащее клиент Axis2 [1.7.3], на Websphere App Server. Но он выдает java.lang.Ошибка создания: org.apache.axis2.привязка данных.ADBDataSource, когда клиент Axis2 пытается запросить ресурс у конечной точки удаленной веб-службы. Причина в строке кода сгенерированного класса Java — строке возврата:

 public org.apache.axiom.om.OMElement getOMElement(
        final javax.xml.namespace.QName parentQName,
        final org.apache.axiom.om.OMFactory factory)
        throws org.apache.axis2.databinding.ADBException {
        return factory.createOMElement(new org.apache.axis2.databinding.ADBDataSource(
                this, MY_QNAME));
}
  

factory.createOMElement из axiom-api-1.2.19.jar .

Часть моего pom.xml:

         <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-kernel</artifactId>
            <version>1.7.3</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-adb</artifactId>
            <version>1.7.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.ws.commons.axiom</groupId>
                    <artifactId>axiom-dom</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-http</artifactId>
            <version>1.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-transport-local</artifactId>
            <version>1.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-xmlbeans</artifactId>
            <version>1.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-jaxws</artifactId>
            <version>1.7.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.ws.commons.axiom</groupId>
                    <artifactId>axiom-dom</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.axis2</groupId>
                    <artifactId>axis2-saaj</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  

Он может работать в Tomcat 7, но не в Websphere! Поэтому я предполагаю, что часть библиотеки Websphere имеет проблему. Есть ли у кого-нибудь опыт в этом?

Комментарии:

1. Какую версию WebSphere Application Server вы используете? Вы видели ibm.com/developerworks/community/forums/html /…

2. Версия Websphere 7.0.0.39

Ответ №1:

Axis2 1.6.1 совместим с WebSphere от 7.x до 8

  • Прежде всего, найдите axis2 1.6.1 и извлеките. Затем откройте архив.

Откройте архив 7-Zip или WinZip

  • Обновите axis2.xml со следующим атрибутом от false до true

введите описание изображения здесь

  • Обновите файл в папке axis2_1_6_2 WEB-INF conf

  • Перейдите в консоль администратора Websphere.

  • Удалите старое приложение и каталог axis2. — Не требуется для первой установки.

  • Установите обновленный файл war axis2_1_6_2.war (** Обновлен Axis2.xml должно быть в файле war), не запускайте.

  • Завершите установку и перейдите к корпоративным приложениям, щелкните axis2_1_6_2.war.

  • Нажмите на Загрузку классов и обнаружение обновлений, выберите Классы, загруженные с помощью локального загрузчика классов первыми (родительский загрузчик последним) и нажмите применить

  • Сохраните непосредственно в основной конфигурации.

  • В разделе Корпоративные приложения щелкните управление модулями.

  • Нажмите на гиперссылку с именем модуля Apache-Axis2

  • В раскрывающемся списке Порядок загрузки классов -> Сначала выберите классы, загруженные с помощью локального загрузчика классов (сначала родительский), и нажмите применить

  • Сохраните непосредственно в основной конфигурации и снова нажмите «ОК», сохраните непосредственно в основной конфигурации

  • Выберите файл war и нажмите «Пуск», приложение успешно запущено, должно появиться сообщение

Ссылки

Имя пользователя : admin

Пароль : axis2