wsimport 使用方法具体解释

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

这里简介一下參数:

  1. -d 表示输出的文件夹。文件夹必须事先存在,否则导出失败。
  2. -keep 表示导出webservice的class文件时是否也导出源码java文件。
  3. -verbose verbose表示具体信息。

我们打开D: est会发现生成了例如以下文件:
这里写图片描写叙述

我们在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就实现了,假设对大家有帮助,请点赞假设有不足之处,敬请指正。

原文地址:https://www.cnblogs.com/yjbjingcha/p/7210536.html