您的位置:首页 > 编程语言 > Java开发

利用jdk1.6的jax-ws 学习简单的web service

2013-03-28 10:52 323 查看
转载:http://blog.sina.com.cn/s/blog_674bc8f90100niss.html
注:不需要导入任何jar包

1.服务器端

接口

package com.reqe.shark.webservice;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import com.flextao.shark.bean.RepairInfoDataSource;
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface RepairInfoWebService {
@WebMethod
public String publishRepairInfoToLDS(RepairInfoDataSource repairInfo);
}

实现类

package com.reqe.shark.webservice.impl;
import javax.jws.WebService;
import com.flextao.shark.bean.RepairInfoDataSource;
@WebService(targetNamespace="http://webservice.shark.reqe.com/",
serviceName="RepairInfoWebService",
endpointInterface="com.reqe.shark.webservice.RepairInfoWebService")
public class RepairInfoWebServiceImpl implements
com.reqe.shark.webservice.RepairInfoWebService {
@Override
public String publishRepairInfoToLDS(RepairInfoDataSource repairInfo) {
System.out.println(repairInfo.getSerialNum());
System.out.println(repairInfo.getRepairText());
//业务处理
return "success";
}
}

2.发布服务,如果是web服务,可以在servlet中发布

public class RepairInfoWebServiceController extends HttpServlet {
@Override
public void init() throws ServletException {
Endpoint.publish("http://192.168.1.98:8080/shark", new RepairInfoWebServiceImpl());
}
}

在web.xml中配置servlet

3.客户端测试类

客户端webservice接口

package com.reqe.shark.webservice;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

import com.reqe.shark.bean.RepairInfoDataSource;
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface RepairInfoWebService {
@WebMethod
public String publishRepairInfoToLDS(RepairInfoDataSource repairInfo);
}

客户还需要写一个RepairInfoDataSource的javabean,包名也要相同

测试类

public class TestWebService {

public static void main(String[] args) {

try {

URL url = new URL("http://192.168.1.98:8080/shark?wsdl");//wsdl 地址

QName qname = new QName("http://webservice.shark.reqe.com/","RepairInfoWebService"); //其中第一个参数为:namespaceURI 第二个为servername

Service service = Service.create(url, qname);

RepairInfoWebService s = service.getPort(RepairInfoWebService.class);

RepairInfoDataSource repairInfo = new RepairInfoDataSource();

repairInfo.setSerialNum("2010");

repairInfo.setRepairText("路灯坏了");

System.out.println(s.publishRepairInfoToLDS(repairInfo));

} catch (Exception e) {

e.printStackTrace();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: