WebService:编写webService使用实例

一.使用JDK编写WebService
1.开发WebService服务器端
@WebService注解接口,@WebMethod注解方法

package wangcc.webservice;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface WebServiceInterface {
    @WebMethod
    String sayHello(String name);

    @WebMethod
    String save(String name, String password);
}

编写一个实现该接口的类,依旧需要@WebService来注解这个类

package wangcc.webservice;

import javax.jws.WebService;

@WebService
public class WebServiceImpl implements WebServiceInterface {

    @Override
    public String sayHello(String name) {
        // TODO Auto-generated method stub
        System.out.println("WebService sayHello:" + name);

        return "sayHello" + name;

    }

    @Override
    public String save(String name, String password) {
        // TODO Auto-generated method stub
        System.out.println("WebService save" + "name:" + name + "password"
                + password);
        return "name:[" + name + "]" + "password:[" + password + "]";
    }

}

接下来我们需要来发布这个WebService,这里我们需要借助EndPoint

package wangcc.webservice.test;

import javax.xml.ws.Endpoint;

import wangcc.webservice.WebServiceImpl;

public class WebServicePublish {
    public static void main(String[] args) {
        String address = "http://127.0.0.1:8080/TheService";
        Endpoint.publish(address, new WebServiceImpl());
        System.out.println("PUBLISH SUCCESS!");

    }

}

此时我们访问:http://127.0.0.1:8080/TheService,可以看到
这里写图片描述
访问 http://127.0.0.1:8080/TheService?wsdl,可以看到
这里写图片描述
我们可以看到wsdl文件中展示了很多有关WebService的信息。我们知道的,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受 的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。
  WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都 能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的 Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

  WSDL 文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。 WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。
  以上我们客户端的代码基本就编写完成了。
  2.客户端:
  下面我们来看客户端代码,首先新建一个Project :TheClient
  首先我们需要使用wsimport命令行生成相关的客户端代码。
  这里写图片描述
在工程目录下执行 wsimport -keep url(webService发布地址)
刷新我们新建的工程TheClient,我们发现自动生成了包以及一些java文件,这里我们主要需要要到最后的两个java文件
这里写图片描述
我们编写一个类来测试一下是否可以调用服务器端的函数。

package wangcc.webservice.TestClient;

import wangcc.webservice.WebServiceImpl;
import wangcc.webservice.WebServiceImplService;

public class WebServiceClient {
    public static void main(String[] args) {
        // 创建一个用于产生WebServiceImpl实例的工厂,WebServiceImplService类是wsimport工具生成的
        WebServiceImplService factory = new WebServiceImplService();
        // 通过工厂生成一个WebServiceImpl实例,WebServiceImpl是wsimport工具生成的
        WebServiceImpl wsImpl = factory.getWebServiceImplPort();
        String responseResult = wsImpl.sayHello("KOBE BRYANT");
        System.out.println("调用WebService的sayHello方法:返回的结果为:" + responseResult);

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值