用 Eclipse 开发 WebService 项目

用 Eclipse 开发 WebService 项目

一、创建 Service
1. 在 Eclipse 下新建一个动态Web项目
用 Eclipse 开发 WebService 项目_第1张图片
 

用 Eclipse 开发 WebService 项目_第2张图片

2. 在项目中新建一个 “SayHello” 类
用 Eclipse 开发 WebService 项目_第3张图片
 

用 Eclipse 开发 WebService 项目_第4张图片

3. 编写 SayHello 类的代码

package org.sunny.service;

//包不要引用错了
import javax.jws.WebService;
import javax.xml.ws.Endpoint;

//注解@WebService不能少
@WebService
public class SayHello {
    
    //该方法为客户端调用的方法,方法名任意
    public String say(String name){
        return "Hello " + name + " , this is SayHelloService !" ;
    }

    public static void main(String[] args) {
        //第一个参数是访问时的url,9091是任意一个不占用的端口
        Endpoint.publish("http://localhost:9091/Service/SayHello", new SayHello());
        System.out.println("service success !");
    }
}

@WebService 注解用于对接口和类进行注解,表示要把这个接口/类发布为 WEB 服务。比如又新建个类 Organization 并对外发布,就在类上加上 @WebService,这样 Client 就可以使用这个类了。如下:

package org.sunny.server;

import javax.jws.WebService;

@WebService
public class Organization {
	private Integer  orgid;
	private String   name;
	private String   address;
	
	public Integer getOrgid() {
		return orgid;
	}
	public void setOrgid(Integer orgid) {
		this.orgid = orgid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}

4. 发布 Service
运行测试 SayHello 类发布 Service,在 SayHello 类文件的任意空白处点击鼠标右键:
用 Eclipse 开发 WebService 项目_第5张图片

或者
用 Eclipse 开发 WebService 项目_第6张图片

运行后将会调用类中的 main 方法,运行后出现如下信息则表示发布 service 成功:
用 Eclipse 开发 WebService 项目_第7张图片

打开浏览器访问:http://localhost:9091/Service/SayHello?wsdl ,注意:“?wsdl” 是必须要添加的。

出现如下页面则表示发布成功:
用 Eclipse 开发 WebService 项目_第8张图片

二、创建 Client
1. 新建客户端类 ClientToSay :
用 Eclipse 开发 WebService 项目_第9张图片

本例是把 Client 和 Service 放在同一个项目下。
当然也可以新建一个动态Web项目来做客户端,如下:
用 Eclipse 开发 WebService 项目_第10张图片

2. 生成客户端的中间代码
用 wsimport 命令为客户端中间代码。wsimport 是 JDK 自带的命令,可以根据 wsdl 文档生成客户端中间代码(相应的类文件),基于生成的代码编写客户端,可以省很多麻烦。
打开命令行窗口,输入以下命令:
wsimport -s E:\SunnyWen\Data\Java_web\WebServiceDemo\src -p org.sunny.client.config -keep http://localhost:9091/Service/SayHello?wsdl
-s 后面的是项目 src 所在的路径
-p 后面的是通过该命令生成的类所在的包
用 Eclipse 开发 WebService 项目_第11张图片

用 Eclipse 开发 WebService 项目_第12张图片

用 Eclipse 开发 WebService 项目_第13张图片
 

用 Eclipse 开发 WebService 项目_第14张图片

3. 编写 ClientToSay 类的代码

package org.sunny.client;

import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
//包别导错了
import javax.xml.ws.WebServiceClient;

//导入两个命令生成的类
import org.sunny.client.config.SayHello;
import org.sunny.client.config.SayHelloService;

//注解@WebServiceClient需要加入
@WebServiceClient
public class ClientToSay {

    public static void main(String[] args) {

        // 方法一
        /*try {
            // 服务WSDL Document的地址

            URL url = new URL("http://localhost:9091/Service/SayHello?wsdl");
            // 1. QName,QName是 qualified name 的简写。
            // 2. QName由名字空间(namespace)前缀(prefix)以及冒号“:”,还有一个元素名称构成。
            // 由package-info.java文件可知namespace为http://service.sunny.org/,
            QName qname = new QName("http://service.sunny.org/", "SayHelloService");
            Service service = Service.create(url, qname);
            SayHello sayHello = service.getPort(SayHello.class);
            String result = sayHello.say("Sunny01");
            System.out.println(result);
        } catch (Exception e) {
            e.printStackTrace();
        }*/

        // 方法二
         //通过SayHelloService的getSayHelloPort()方法的SayHello接口
         SayHello sayHello = new SayHelloService().getSayHelloPort();
         //调用SayHello接口的say方法
         String result = sayHello.say("Sunny02");
         //输出返回内容
         System.out.println(result);
    }

}

4. 运行 Client
同样如下运行 Client :
用 Eclipse 开发 WebService 项目_第15张图片

出现下面信息,说明调用 Service 的接口成功:
用 Eclipse 开发 WebService 项目_第16张图片

 

Ok,完毕!

 

参考: https://www.cnblogs.com/FlyingPuPu/p/5335138.html

你可能感兴趣的:(网络编程,编程,Web开发,WebService)