用注解搭建了下 JAX-WS ,特记录下重点
创建JAX-WS 服务
exporter.setBaseAddress 服务地址
@Bean
public SimpleJaxWsServiceExporter jaxWsExporter() {
SimpleJaxWsServiceExporter exporter = new SimpleJaxWsServiceExporter();
exporter.setBaseAddress("http://localhost:9098/services/");
return exporter;
}
webservice接口服务
@WebService webservice注解
@WebMethod 公布方法 serviceName 为服务名称
@Component
@WebService(serviceName="SpitterService")
public class SpitterServiceEndpoint {
@Autowired
private SpitterService spitterService;
@WebMethod
public Spittr getSpitter(Long id){
return this.spitterService.getSpitter(id);
}
}
启动服务之后 可以查看 wsdl了 地址为:http://localhost:9098/services/SpitterService?wsdl
客户端
@Bean
public JaxWsPortProxyFactoryBean spitterServiceBean() {
JaxWsPortProxyFactoryBean proxy = new JaxWsPortProxyFactoryBean();
try {
proxy.setWsdlDocumentUrl(new URL("http://localhost:9098/services/SpitterService?wsdl"));
} catch (MalformedURLException e) {
e.printStackTrace();
}
proxy.setServiceName("SpitterService");
proxy.setPortName("SpitterServiceEndpointPort");
proxy.setNamespaceUri("http://service.spittr/");
proxy.setServiceInterface(SpitterService.class);
return proxy;
}
需要注意的是setServiceName setPortName setNamespaceUri 为wsdl中对应的值
客户端中的SpitterService
targetNamespace命名空间 没写有可能报错
基本就是这些了