Spring 3(SWS2):<context:component-scan>和<sws:annotation-driven> </sws:annotation-driven> </context:component-scan>之间的区别

时间:2011-06-01 09:00:14

标签: spring spring-ws

使用一个@Endpoint注释类尝试简单的Web Service Hello World示例时,使用<sws:annotation-driven/>命名空间时未注册Endpoint。

但是,通过添加通常的<context:component-scan>,一切正常,Endpoint-class已正确注册。 这仅适用于@Endpoint注释,所有其他注释(@RequestPayload@ResponsePayload@PayloadRoot)将按预期由sws-namespace注册。

此命名空间是否也不应处理@Endpoint注释?

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

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

2 个答案:

答案 0 :(得分:3)

这是一个已知的SWS错误:https://jira.springsource.org/browse/SWS-702

答案 1 :(得分:2)

现在使用,如:

<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