WebService学习——入门例子

因为不会写总结性的介绍,所以直接以简单的例子来开头。本笔记所有内容使用语言为Java。
一、服务端Server
1.接口SayHello
package service;

import javax.jws.WebMethod; 
import javax.jws.WebService; 
@WebService 
public interface SayHello { 
    @WebMethod 
    public String sayHello(String name); 
}

2.接口的实现类SayHelloImpl

import javax.jws.WebService;
import service.SayHello;
@WebService
public class SayHelloImpl implements SayHello {
    @Override
    public String sayHello(String name) {
        System.out.println("Server : Hello!" + name);
        return "Hello:"+name;
    }
}

3.把service的方法发布出去ServicePublish

import javax.jws.WebService;
import javax.xml.ws.Endpoint;
import service.impl.SayHelloImpl;
@WebService
public class ServicePublish {
    public static void main(String[] args) {
        String address = "http://127.0.0.1:9010/ws/sayHello";
        Endpoint.publish(address, new SayHelloImpl());
        System.out.println("WebService Publish Success!");
    }
}

服务端的代码结构:
服务端的项目结构

当控制台出现下列字符串时,service就成功发布了。
WebService Publish Success!

二、客户端Client
服务端成功发布之后,可以根据WSDL链接生成客户端代码。WSDL链接就是自定义URL地址后面加上?wsdl(URL?wsdl)这样的形式。
生成客户端代码的方式有四种:
1. 使用JDK自带的wsimport命令生成,要求JDK要在1.6以上
2. 使用Eclipse中自带的Web Service工具生成客户端(使用的是Axis 1.4.6框架)
3. 使用Axis2框架生成
4. 使用CXF框架生成

在本篇文章中,仅使用JDK自带的wsimport命令生成客户端。其他的生成方式,后续再去比较。
生成客户端的方式,打开cmd界面,输入以下命令:
wsimport -keep -s E:\example http://127.0.0.1:9010/ws/sayHello?wsdl
wsimport的选项:
-keep:生成java源文件
-s:指定java源文件的输出目录
-d:生成class文件,并指定class文件的输出目录
-p:定义生成类的包名,不定义的话有默认的包名

当CMD窗口出现类似下面的内容时,说明客户端成功生成。
这里写图片描述

Ecplise中项目的代码结构为:
这里写图片描述

测试客户端的方法非常简单
建一个测试类TestClient.java

import service.impl.SayHelloImpl;
import service.impl.SayHelloImplService;
public class TestClient {
    public static void main(String[] args) {
        SayHelloImpl say = new SayHelloImplService().getSayHelloImplPort();
        String str = say.sayHello("WebService");
        System.out.println(str);
    }

如果测试类成功的话,控制台会出现如下字符串:
测试类成功的界面

至此,一个WebService的简单例子就简单完成了,例子内容包括服务端、客户端、wsimport命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值