【WebService】快速创建webservice实例
程序员文章站
2022-04-28 11:58:40
...
快速创建webservice实例步骤:
1、建立IMyService接口类:
@WebService()
public interface IMyService {
/**
* 加法
* @param a
* @param b
* @return
*/
@WebResult(name="addResult")
public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);
/**
* 减法
* @param a
* @param b
* @return
*/
@WebResult(name="minusResult")
public int minus(@WebParam(name="a")int a,@WebParam(name="b")int b);
}
2、建实现类IMyServiceImpl:
@WebService(endpointInterface="org.zttc.service.IMyService")
public class MyServiceImpl implements IMyService {
/**
* 加法
* @param a
* @param b
* @return
*/
@Override
public int add(int a, int b) {
System.out.println(a+"+"+b+"="+(a+b));
return a+b;
}
/**
* 减法
* @param a
* @param b
* @return
*/
@Override
public int minus(int a, int b) {
System.out.println(a+"-"+b+"="+(a-b));
return a-b;
}
}
3、MyServer类:测试是否部署成功
/**
* server端
* @author 王红伟
*
*/
public class MyServer {
public static void main(String[] args) {
String address = "http://localhost:8888/ns";
//发布地址
Endpoint.publish(address, new MyServiceImpl());
}
}
启动MyServer,访问http://localhost:8888/ns
url后加?wsdl如:http://localhost:8888/ns?wsdl 结果:
看到这里,证明我们部署成功了。
4、写TestClient测试类:部署成功后,我们就可以调用了
public class TestClient {
public static void main(String[] args) {
try {
//创建访问wsdl服务地址的url
URL url = new URL("http://localhost:8888/ns?wsdl");
//通过Qname指明服务的具体信息
//MyServiceImplService对应wsdl页的本地提供的webservice的名称
QName sname = new QName("http://service.zttc.org/", "MyServiceImplService");
//创建服务
Service service = Service.create(url,sname);
//实现接口
IMyService ms = service.getPort(IMyService.class);
System.out.println(ms.add(12,33));
//以上服务有问题,依然依赖于IMyServie接口
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
运行TestClient,最终结果为45
直接将wsdl转为java对象,但是存在问题,
//实现接口
IMyService ms = service.getPort(IMyService.class);
这句代码依赖外部接口,wsdl可能是.net开发的,可能是其他语言开发的,依赖接口不能跨平台。所以引出了wsimport的使用。
关于webservice的实例就到这里,下篇博客将为您展示wsimport的使用,欢迎您的访问。