Не найдено сопоставление конечной точки с использованием аннотаций, управляемых Spring WS 2.0.2 с динамическим wsdl - PullRequest
0 голосов
/ 06 октября 2011

Я использую Spring WS 2.0.2 на основе аннотаций для создания простого Web-сервиса, но отображение enpoint не найдено.

Вход и выход являются элементами jdom, чтобы сделать его максимально простым.

Webservice работает с Java 1.6 на Tomcat 6.0.29, который возвращает ошибку страница (Запрошенный ресурс () недоступен) для моего теста службы SoapUI.

Вот ошибка, которую я получаю при регистрации:

WARNING: No endpoint found for [SaajSoapMessage (http://foo.bar/myTest)myRequest]

Вот части конфигурации, которые я считаю относящимися к отображению конечной точки: (Если есть более важные части, которые мне не хватает, пожалуйста, спросите ...)

Схема (WEB-INF / xsd / myTest.xsd)

targetNamespace="http://foo.bar/myTest"

...

<element name="myRequest" type="tns:string"/>
<element name="myResponse" type="tns:string"/>

web.xml (WEB-INF / web.xml)

<servlet-class>
org.springframework.ws.transport.http.MessageDispatcherServlet
</servlet-class>
<init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/spring/config.xml</param-value>
</init-param>
<init-param>
  <param-name>transformWsdlLocations</param-name>
  <param-value>true</param-value>
</init-param>

Spring config (/WEB-INF/spring/config.xml)

<sws:annotation-driven/>

<sws:dynamic-wsdl id="myTest"
  portTypeName="myTest"
  localUri="/"
  targetNamespace="http://foo.bar/myTest">
  <sws:xsd location="/WEB-INF/xsd/myTest.xsd"/>
</sws:dynamic-wsdl>

Конечная точка (src / main / java / bar / foo / MyEndpoint.java)

@Endpoint
public class MyEndpoint{
  @PayloadRoot(localPart="myRequest",namespace="http://foo.bar/myTest")
  @ResponsePayload
  public Element mySearch( @RequestPayload Element myRequest){
     return myRequest;
  }
}

1 Ответ

3 голосов
/ 07 октября 2011

В поисках решения я обнаружил, что оно содержится в этом ответе

Добавление

...
xmlns:context="http://www.springframework.org/schema/context"
...
xsi:schemaLocation=" ...
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd ... "

<context:component-scan base-package="bar.foo"/>

в моей конфигурации Spring, пусть сервлет найдет мою конечную точку.

Моя проблема заключалась в том, что ни одного примера кода в найденной мной документации весной не было этот шаг и его актуальность.

Ну, на самом деле я нашел этот фрагмент кода в учебнике ранее, но он был немного перегружен функциями, которые мне не нужны, и, как и в официальных документах, не было объяснено, почему это было необходимо.

...