刚接触web service,好不容易找到一篇spring-ws的例子,还琢磨了好长一段时间,很多概念性的问题都没弄清楚。只能依葫芦画瓢,照搬过来,稍微修改了一下,使结构更加清晰,原文出自fuxueliang.javaeye.com/blog/175184#。
基本环境:
JDK6、Tomcat 6.0、MyEclipse 6.6、spring 2.0、spring-ws-1.5.5
1、spring-ws-servlet.xml
这个地方出现了一段插曲,hello.wsdl放在WEB-INF下老是报错,说hello.wsdl找不到,后来放到classpath下才OK。
创建一个Web项目, 由于Spring Web Service是基于Spring MVC的, 在web.xml中添加如下servlet, 并在WEB-INF下建立SpringMVC的默认配置文件spring-ws-servlet.xml:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
-
-
<bean id="payloadMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping">
-
<property name="endpointMap">
-
<map>
-
<entry key="{http://www.ispring.com/ws/hello}eRequest">
-
<ref bean="helloEndpoint"/>
-
</entry>
-
</map>
-
</property>
-
</bean>
-
-
<bean id="hello" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition">
-
<property name="wsdl" value="classpath://hello.wsdl"></property>
-
-
-
</bean>
-
-
<bean id="helloEndpoint" class="com.sws.HelloEndPoint">
-
<property name="helloService" ref="helloService"></property>
-
</bean>
-
-
<bean id="helloService" class="com.sws.HelloServiceImpl"></bean>
-
-
</beans>
其中最主要的bean就是payloadMapping, 它定义了接收到的message与endpoint