【WebService】快速创建webservice实例

快速创建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 结果:
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的使用,欢迎您的访问。

相关文章
相关标签/搜索