当前位置 : 主页 > 网页制作 > Nodejs >

webservice学习第一章

来源:互联网 收集:自由互联 发布时间:2021-06-24
什么是webservice? ** webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间交互的规范。 ** 例如:天气预报对外提供接口,供别人调用获取天气的信息。 又比如

什么是webservice?

** webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间交互的规范。 **

例如:天气预报对外提供接口,供别人调用获取天气的信息。 又比如在Windows server上面开发了一个C#应用A,在linux服务器上面又用java开发了一个应用B,两个应用直接互相调用,获取对方的业务数据。

使用CXF实现客户端和服务器交互的HelloWorld程序。

客户端代码

package com.xukaiqiang.webservice.test;

import com.xukaiqiang.webservice.HelloWorld;
import com.xukaiqiang.webservice.HelloWorldService;

public class Client {
	public static void main(String[] args) {
		HelloWorldService  service=new HelloWorldService();
		HelloWorld helloWorld=service.getHelloWorldPort();
		System.out.println(helloWorld.say("_xukaiqiang"));
	}
}

服务器端代码

package com.xukaiqiang.webservice.impl;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.xukaiqiang.webservice.HelloWorld;


/**
 * @ClassName: Server
 * @Description: CXF发布webservice接口
 * @author xukaiqiang
 * @date 2016年12月16日 下午6:21:35
 * @modifier
 * @modify-date 2016年12月16日 下午6:21:35
 * @version 1.0
*/
public class Server {
	public static void main(String[] args) {
		System.out.println("web service  start.");
		HelloWorld helloWorldImpl=new HelloWorldImpl();
		String address="http://192.168.2.169/helloWorld";
		JaxWsServerFactoryBean  factoryBean =new JaxWsServerFactoryBean();
		//设置暴露地址
		factoryBean.setAddress(address);
		//接口类
		factoryBean.setServiceClass(HelloWorld.class);
		factoryBean.setServiceBean(helloWorldImpl);
		//创建webservice接口
		factoryBean.create();
		System.out.println("web service  started");
	}
}

server依赖

<dependencies>
  	<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws -->
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-rt-frontend-jaxws</artifactId>
	    <version>3.1.6</version>
	</dependency>
	  	<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-core -->
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-core</artifactId>
	    <version>3.1.6</version>
	</dependency>
	 <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-transports-http-jetty -->
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-rt-transports-http-jetty</artifactId>
	    <version>3.1.6</version>
	</dependency>
  </dependencies>

接口和接口实现类

package com.xukaiqiang.webservice.impl;

import javax.jws.WebService;

import com.xukaiqiang.webservice.HelloWorld;
@WebService
public class HelloWorldImpl implements HelloWorld {
	public String say(String words) {
		return "Hello"+words;
	}

}

客户端的代码需要使用wsdl2java命令进行生成:

首先运行server端程序。 然后再要生成代码的目录下面如:client项目的

C:\Users\xukaiqiang\git\webservice\WS_Client\src\main\java文件,

在此处执行命令

wsdl2java http://192.168.2.169/helloWorld?wsdl

就会生成源码到该目录下面。

源码github下载地址

网友评论