简单web service服务端和客户端例子

---新手上路,记录学习过程---

 

一个超级简单的web service例子。服务端暴露一个showTime()方法。客户端调用该方法,将服务器的时间打印到客户端控制台。

 

先写服务端:

    1.将CXF需要的基本jar包加入到工程。

    
简单web service服务端和客户端例子_第1张图片

    2.新建一个接口,代码如下:

   

@WebService
public interface IHelloWorld {
	
	String showTime();

}

      建一个实现类

    

@WebService(endpointInterface="com.xx.ws.IHelloWorld", 
		serviceName="demo")
public class HelloWorldImpl implements IHelloWorld {

	@Override
	public String showTime() {
		return "现在的服务端时间是:"+new Date();
	}

}

     3.简单的服务端已经写好了,新建一个启动类ServerMain发布该服务端即可。

   

public class ServerMain {
	
	public static void main(String[] args) {
		IHelloWorld ihw = new HelloWorldImpl();
		Endpoint.publish("http://localhost:9999/demo", ihw);
		System.out.println("web service发布成功!");
	}

}

 -------------------------------------简单的服务端代码已经写好了。项目目录结构如下:


简单web service服务端和客户端例子_第2张图片
 

验证一下。运行启动类-->打开浏览器,输入发布的地址http://localhost:9999/demo?wsdl。如果显示如下,说明服务端发布成功了:

   
简单web service服务端和客户端例子_第3张图片
 
 客户端编写:

    客户端代码基本都由CXF动态生成,使用CXF的指令,要将下载的CXF的bin目录配置到系统的Path环境变量下。

    新建一个客户端项目,如ws_client。打开电脑命令行界面,进入到客户端的src目录下。

输入:wsdl2java http://localhost:9999/demo?wsdl 刷新项目,可以看到CXF动态生成的代码。

新建一个启动类ClientMain,就可以调用服务端的showTime()方法了!!

 

 

public class ClientMain {

	public static void main(String[] args) {
		Demo demo = new Demo();
		IHelloWorld hw = demo .getHelloWorldImplPort();
		System.out.println(hw.showTime());
	}

}

 

 运行启动类,在控制台可以看到打印信息!!

客户端项目的目录结构:
简单web service服务端和客户端例子_第4张图片
 

 

 

你可能感兴趣的:(webservice,CXF)