2016-01-19 10 views
0

У меня есть требование разработать и опубликовать веб-службы SOAP в WebSphere 8.5.5. Я разработал Spring WS и развернулся на сервере WAS 8.5.5 [после изоляции конфликтующих JAR-серверов и установки загрузки класса-родителя-последнего класса]. Все работает нормально, и я могу без проблем развернуть/получить доступ к файлу WAR. Я использую версию Spring 2.0 и версии 2.2.1.RELASE Spring и 2.2.1.RELEASE вместе с JDK 7.WebSphere 8.5.5 не распознает примечание Spring WS @Endpoint

Проблема заключается в том, что при входе в консоль администратора WAS и нажатии на мое приложение, я не видя раздел «Свойства веб-служб». Я не вижу свою заявку по телефону Услуги -> Поставщики услуг. Я поднял PMR с IBM, и они подтвердили, что их функция администратора сканирует и ищет только аннотацию, а не для каких-либо других аннотаций @Webservice. После объявления @Webservice аннотация найдена, WAS будет отмечать приложение как поставщик услуг. Все примеры Spring WS, которые я видел до сих пор, использовали аннотацию @Endpoint, и я не уверен, почему WAS не узнает об этом.

Нам нужно настроить модуль входа в WAS [для использования токена SAML], и веб-администратор говорит, что это можно сделать только в том случае, если отображается раздел «Web Services Properties». Ответ IBM заставил его выглядеть как проблема приложения, но я не уверен, что еще можно сделать в коде приложения. Я не хочу обновлять код для использования аннотаций JAX-WS. Я уже пробовал использовать 'ibm-web-bnd.xml' и 'ibm-web-ext.xml' и фактический WSDL внутри моей папки WEB-INF, но напрасно. Я также пытался упаковать свою WAR в EAR, но это не помогло. Я использую приведенную ниже строку в своем web.xml:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 

Неужели кто-нибудь столкнулся с этой проблемой? Любой код или конфигурацию оболочки, которые нужно изменить, чтобы мой WAR-модуль был признан веб-сервисом в WAS 8.5.5? Пожалуйста, порекомендуйте.

+0

«Все примеры Spring WS, которые я видел до сих пор, использовали аннотацию @Endpoint, и я не знаю, почему WAS не узнает об этом». - Не удивительно, что WAS ищет аннотации из спецификаций EE, которые он реализует, а не аннотации из фреймворков, которые делают подобные вещи. – covener

ответ

1

Поскольку не было никаких других последующих действий - если ваш веб-модуль использует стороннюю структуру, которая реализует веб-службы, отличные от EE, с точки зрения серверов приложений это все еще только коллекция сервлетов и фильтров, а не веб-сервисов EE сервер может управлять и обеспечивать интеграцию.

Вам необходимо решить вашу проблему SAML без привязки к конфигурации веб-серверов на сервере приложений.

+0

Спасибо, covener !! Мне было интересно, как потребление SAML настроено в WebSphere для веб-модуля [представьте, что у меня есть обычное веб-приложение, и мне нужно настроить WAS]. Я также подумал об использовании перехватчика WSS4J. Есть предположения? –