欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-18 09:34:39
...

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包↓
       使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
 

 

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

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");
	}
}

      运行↓
      使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 

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

      使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
 

Web Service客户端:

      1、新创建一个java projact

      

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

           使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
            

      3、经过以上步骤,客户端会自动生成代码↓
           使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 

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

         使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
          
      4、写一个类调用Service子类的实例的get**Port()(**为实现类名)方法,会返回远程Web Service的代理,则可调用服务器端的方法↓

           使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 

 

  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 46 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 88.5 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 69.3 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 8.2 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 127.1 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 127.1 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 8.2 KB
  • 使用CXF开发WebService服务器端和客户端[案例]
            
    
    博客分类: Web Service Web Servicejavacxf 
  • 大小: 41.5 KB