使用CXF开发WebService服务器端和客户端[案例]_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 使用CXF开发WebService服务器端和客户端[案例]

使用CXF开发WebService服务器端和客户端[案例]

 2015/4/16 15:31:36  Reverie夜  程序员俱乐部  我要评论(0)
  • 摘要:WebServce能解决的问题:1、远程调用2、跨平台调用3、语言调用WebServce实际用途:1、同意公司的新旧系统整合;2、不同公司的业务整合;3、内容聚合;本次使用号称SOA框架的CXF(Xfire+Celtrix←具体请找度娘)来写一个WebService的例子。预备:1、eclipse2、apache-cxf-2.1.4(不要在意版本)WebService服务器端(PS:CXF内置一个JettyWeb服务器):1、创建一个javaprojact(普通的java项目
  • 标签:Web Service 使用 Webservice 客户 开发 服务器 客户端 服务

Web Servce能解决的问题:

? ? ??1、远程调用

? ? ??2、跨平台调用

? ? ??3、语言调用

?

Web Servce实际用途:

? ? ? 1、同意公司的新旧系统整合;

? ? ??2、不同公司的业务整合;

? ? ??3、内容聚合;

?

本次使用号称SOA框架的CXF(Xfire + Celtrix ← 具体请找度娘)来写一个Web Service例子

?

预备:

? ? ? 1、eclipse

? ? ? 2、apache-cxf-2.1.4(不要在意版本

?

Web Service服务器端(PS:CXF内置一个Jetty Web服务器):

? ? ? 1、创建一个java projact(普通的java项目,由于这只是个例子文件夹结构名字什么的随意就好√),需要添加CXF的jar包↓
? ? ? ?
?

?

? ? ? 2、写一个web service接口,该接口要用@WebService修饰

class="java" name="code">package org.night;

import javax.jws.WebService;

@WebService
public interface HelloWord {
	String sayHi(String name);
}
?

? ? ? 3、写一个该接口的实现类,同样需要@WebService修饰(serviceName是自定义的,并不是非要和实现类一样名)

package org.night.impl;

import java.util.Date;

import javax.jws.WebService;

import org.night.HelloWord;

@WebService(endpointInterface="org.night.HelloWord", serviceName="HelloWordImpl")
public class HelloWordImpl implements HelloWord{
	@Override
	public String sayHi(String name) {
		return name + " 你好" + " 时间:" + new Date();
	}
}
?

? ? ? 4、发布,创建一个类,main调用Endpoint.publish(address, implementor),第一个参数是自己的应用地址

package org.night.N;

import javax.xml.ws.Endpoint;

import org.night.HelloWord;
import org.night.impl.HelloWordImpl;

public class ServiceMain {
	public static void main(String[] args) {
		HelloWord hw = new HelloWordImpl();
		//调用Endpoint.publish()发布WebService
		Endpoint.publish("http://192.168.1.101/nightWebService", hw);
		System.out.println("Web Service Run");
	}
}

? ? ? 运行↓
? ? ??

? ? ??在浏览器上输入服务器端的绑定的地址+?+wsdl会出现↓↓↓↓↓↓↓↓↓↓↓↓

? ? ??
?

Web Service客户端:

? ? ? 1、新创建一个java projact

? ? ??

? ? ? 2、打开控制台找到客户端的src路径,调用CXF提供的wsdl2java工具(在根目录bin文件夹下面)↓如图

? ? ? ? ? ?
? ? ? ? ? ??

? ? ? 3、经过以上步骤,客户端会自动生成代码↓
? ? ? ? ? ?

? ? ? ? ?找到wsdl2java生成的Service接口的实现类,嘛~其实就是对应服务器实现业务借口的实现类,只是因为这里服务器端也是自己开发的,所以很容易知道~

? ? ? ? ?
?? ? ? ? ?
? ? ? 4、写一个类调用Service子类的实例的get**Port()(**为实现类名)方法,会返回远程Web Service的代理,则可调用服务器端的方法↓

? ? ??? ? ?

?

  • 大小: 46 KB
  • 大小: 88.5 KB
  • 大小: 69.3 KB
  • 大小: 8.2 KB
  • 大小: 127.1 KB
  • 大小: 127.1 KB
  • 大小: 8.2 KB
  • 大小: 41.5 KB
  • 查看图片附件
发表评论
用户名: 匿名