我使用注释驱动的Spring WS 2.0.2来创建一个简单的Web服务,但找不到enpoint映射。
输入和输出是jdom元素,以使其尽可能简单。
Web服务在Tomcat 6.0.29上运行Java 1.6,并返回错误 我的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;
}
}
答案 0 :(得分:3)
搜索我发现它包含在this answer
中的溶剂添加
...
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配置让servlet找到我的端点。
我的问题是,我找到的弹簧文档中没有包含示例代码 这一步及其相关性。
嗯 - 实际上我之前在教程中发现了这个代码snipplet,但它有点超载了我不需要的功能,而且在官方文档中没有解释为什么它是必要的。