wsimport 使用方法
本文主要介绍wsimport的简单使用方法。帮助大家在webserviceclient开发过程中生成接口代码:
打开java JDK文件夹我们会看到wsimport工具,这是由sun为我们免费提供的的。功能强大,会给我们工作带来极大的方便。
创建服务端代码:
接口
package com.huawei.idp.composer.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface MyService {
@WebMethod
public int add(@WebParam(name="a")int a, @WebParam(name="b")int b);
}
实现类
package com.huawei.idp.composer.service.impl;
import javax.jws.WebService;
import com.huawei.idp.composer.service.MyService;
@WebService(endpointInterface="com.huawei.idp.composer.service.MyService")
public class MyServiceimpl implements MyService {
@Override
public int add(int a, int b)
{
return a + b;
}
}
调用wsimport工具。打开dos窗体。输入命令:
wsimport -d D:\test -keep -verbose http://127.0.0.1:8080/hello?wsdl
这里简介一下參数:
- -d 表示输出的文件夹。文件夹必须事先存在,否则导出失败。
- -keep 表示导出webservice的class文件时是否也导出源码java文件。
- -verbose verbose表示具体信息。
我们打开D:\test会发现生成了例如以下文件:
我们在Eclipse中又一次建立一个project,将这个文件夹复制到src文件夹下
然后開始编写client代码
package com.huawei.idp.composer.client;
import com.huawei.idp.composer.service.impl.MyService;
import com.huawei.idp.composer.service.impl.MyServiceimplService;
public class Test
{
public static void main(String[] args)
{
MyServiceimplService myserviceImpl = new MyServiceimplService();
MyService myService = myserviceImpl.getMyServiceimplPort();
System.out.println(myService.add(1, 2));
}
}
[调用结果](http://img.blog.csdn.net/20150822175745450)``
这里值得注意的是,生成的MyServiceimplService类并非服务端实现类,而是继承了Service的类而且提供了方法:
/**
*
* @return
* returns MyService
*/
@WebEndpoint(name = “MyServiceimplPort”)
public MyService getMyServiceimplPort() {
return super.getPort(new QName(“http://impl.service.composer.idp.huawei.com/“, “MyServiceimplPort”), MyService.class);
}
“`
这里直接帮我们生成了一个Qname訪问程序。既然怎样,我们就不用自己写qname了。直接拿来用測试岂不更好?
到此为止,一个简单的webservice就实现了,假设对大家有帮助,请点赞假设有不足之处,敬请指正。