欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【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
【WebService】快速创建webservice实例
url后加?wsdl如:http://localhost:8888/ns?wsdl 结果:
【WebService】快速创建webservice实例
看到这里,证明我们部署成功了。

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的使用,欢迎您的访问。

相关标签: web service