spring提供完整的对标准 Java web services 的支持。有2种方式 SpringBeanAutowiringSupport 和 SimpleJaxWsServiceExporter 。
SpringBeanAutowiringSupport没实验成功 :( , 下面只说 SimpleJaxWsServiceExporter 的方式。我是直接混合springMVC使用的。
EndPoint
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15@Component("UserService") // auto scan
@WebService(serviceName="UserService")
public class UrUserEndpoint
{
@Autowired
IUrUserService userService;
@WebMethod
public UrAbsUserEntity getUser(String username){
return userService.findByUsername(username);
}
}xml config
1
2
3<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">
<property name="baseAddress" value="http://localhost:8081/"/> //注意,如果是直接混合springMVC使用的,不能和servlet容器端口冲突
</bean>java config
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15@Configuration
public class ApplicationConfiguration
{
@Bean
public SimpleJaxWsServiceExporter jaxms()
{
SimpleJaxWsServiceExporter jaxws = new SimpleJaxWsServiceExporter();
jaxws.setBaseAddress("http://localhost:8081/"); //注意,如果是直接混合springMVC使用的,不能和servlet容器端口冲突
//此处可以有更多设置
return jaxws;
}
}wsdl
启动容器,在浏览器中访问 http://localhost:8081/UserService?wsdl , 就能看到wsdl的内容了