项目用到webservice开发,之前多少接触过但都是一知半解,今天整理一下思路。
第一部分:创建服务端
注意看注解的解释。
@WebService
@SOAPBinding(style = Style.RPC)
public class Service01 {
/**
* 发布项目
*/
public static void main(String[] args) {
System.out.println("web service start");
//第一种发布方式:通过CXF提供的JaxWsServerFactoryBean来发布webservice
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(Service02.class);
factory.setAddress("http://10.19.128.192:9999/nsrcheck");
Server server = factory.create();
server.start();
//第二种方式,通过JAX-WS提供的Endpoint来发布webservice
// Endpoint.publish("http://10.19.128.192:9999/nsrcheck", new Service02());
System.out.println("web service started");
}
/**
* 必须有一个共有方法
*/
@WebMethod
@WebResult(partName = "RESULT")
public String sayHello((@WebParam(name ="name")String name){
return "say:"+name;
}
这样直接运行就可以了。
说明:
@WebService :实现 Web Service 的 Java 类必须指定 @WebService,注释目标:类型。
@WebMethod: 注释表示作为一项 Web Service 操作的方法。注释目标:方法。
@WebParam: 注释用于定制从单个参数至 Web Service 消息部件和 XML 元素的映射。注释目标:参数。
@WebResult :注释用于定制从返回值至 WSDL 部件或 XML 元素的映射。注释目标:方法。
@SOAPBinding 注释指定 Web Service 与 SOAP 消息协议之间的映射。将此注释应用于客户机或服务器服务端点接口(SEI)上的类型或方法,或者应用于 JavaBeans 端点的服务器端点实现类。注释目标:类型或方法。
返回效果:
<RESULT>
<return>晓明</return>
</RESULT>
第二部分:返回对象
/**
*返回类型对象
*/
public class ResultDto {
private String NAME; //必须是private,否则报错
private String SEX;
...
public String getNAME() {
return NSR;
}
public void setNAME(String name) {
NAME = name;
}
public String getSEX()
...
}
修改上面的sayHello方法
@WebMethod
@WebResult(partName = "RESULT")
public ResultDto sayHello((@WebParam(name ="name")String name){
ResultDto result = new ResultDto ();
result.setNAME(name);
return result ;
}
返回效果:
<RESULT>
<SEX/>
<NAME>晓明</NAME>
</RESULT>
2294

被折叠的 条评论
为什么被折叠?



