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

相关文章

1.使用ajax调用varxhr;functioninvoke(){if(window.ActiveXO...
               好不容易把WebService服务器...
1新建一个工程项目用来做服务端增加一个MyService1类文件pac...
packagecom.transsion.util;importjava.io.BufferedReader;i...
再生产wsdl文件时重写描述文件1usingSystem;2usingSystem.Co...
一般情况下,使用eclipse自带的jax-ws生成webservice会自动生...