Пружина 3 (SWS2): разница междуа также - PullRequest
6 голосов
/ 01 июня 2011

При использовании простого примера Hello World с веб-сервисом только с одним аннотированным классом @Endpoint конечная точка не регистрируется при использовании пространства имен <sws:annotation-driven/>.

Однако, добавив обычный <context:component-scan>, все работает хорошо, класс Endpoint зарегистрирован правильно. Это верно только для аннотации @Endpoint, все остальные аннотации (@RequestPayload, @ResponsePayload, @PayloadRoot) будут зарегистрированы в пространстве имен sws, как и ожидалось.

Если аннотация @Endpoint также не обрабатывается этим пространством имен?

<beans>
   <!-- works for all annotations except @Endpoint -->
    <sws:annotation-driven/>

    <!-- when activated, @Endpoint is registered correctly <context:component-scan/> -->
</beans>

Ответы [ 2 ]

3 голосов
/ 01 июня 2011

Это известная ошибка SWS: https://jira.springsource.org/browse/SWS-702.

2 голосов
/ 01 июня 2011

На данный момент используйте оба, как в:

<context:component-scan base-package="com.coral.project.endpoints"/>

<sws:annotation-driven marshaller="marshaller" unmarshaller="marshaller"/>

это находит аннотации @Endpoint и @ PayloadRoot, @ ResponsePayload. Вот как они говорят вам сделать это в ссылках на Spring-WS:

http://static.springsource.org/spring-ws/sites/2.0/reference/html/tutorial.html#tutorial.implementing.endpoint

...