wsimport 用法详解

wsimport 用法

本文主要介绍wsimport的简单用法,帮助大家在webservice客户端开发过程中生成接口代码:
打开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:\test会发现生成了如下文件:
这里写图片描述

我们在Eclipse中重新建立一个工程,将这个目录拷贝到src目录下
红框中的类都是自动生成的
然后开始编写客户端代码

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值