在Myeclipse下使用CXF和Spring开发Web Service

【Web Service 李刚视频的学习笔记】

一。使用CXF开发Web Servive服务器端(新建Java Project名字叫WS_Server)//每个Web Service组件都需要2个部分,接口和实现类。

  1. 开发一个Web Service业务接口,该接口要用@WebService修饰  ,在src下新建com.hnu.cxf.ws包,包下新建一个叫HelloWorld的业务接口,Helloworld里的代码如下:
    1 package com.hnu.cxf.ws;
    2 
    3 import javax.jws.WebService;
    4 
    5 @WebService//由javax.jws.WebService提供的
    6 public interface HelloWorld {
    7     String sayHi(String name);
    8 }
  2. 开发一个Web Service业务接口的实现类,该接口也要用@WebService修饰,但要指定两个属性endpointInterface和serviceName,在src下新建com.hnu.cxf.ws.impl包,新建一个HelloWorld的业务接口的实现类,HelloWorldWs.java代码如下:
     1 package com.hnu.cxf.ws.impl;
     2 
     3 import java.util.Date;
     4 
     5 import javax.jws.WebService;
     6 
     7 import com.hnu.cxf.ws.HelloWorld;
     8 
     9 //endpointInterface的值是要实现的接口的名字,serviceName属性的名字可随意指定
    10 @WebService(endpointInterface="com.hnu.cxf.ws.HelloWorld", serviceName="HelloWorldWs")
    11 public class HelloWorldWs implements HelloWorld {
    12 
    13     @Override
    14     public String sayHi(String name) {
    15         // TODO Auto-generated method stub
    16         
    17         return name+",您好!现在时间是"+new Date();
    18     }
    19 }
  3. 导入CXF的相关jar包,发布服务。也可将CXF的lib目录下的所有jar包全部导入,CXF的jar包里面包含了jetty web服务器,再新建一个chen包,写一个主程序ServerMain.java,代码如下:
     1 package chen;
     2 
     3 import javax.xml.ws.Endpoint;
     4 
     5 import com.hnu.cxf.ws.HelloWorld;
     6 import com.hnu.cxf.ws.impl.HelloWorldWs;
     7 
     8 public class ServerMain {
     9     public static void main(String[] args) {
    10         HelloWorld hw = new HelloWorldWs();
    11         // 调用Endpoint的publish方法发布Web Service,第一个参数是Web Service服务地址,
    12         Endpoint.publish("http://192.168.1.102:8081/hnu", hw);
    13         System.out.println("Web Service暴露成功");
    14     }
    15 
    16 }

    此时,在浏览器输入http://192.168.1.102:8081/hnu?wsdl可以出现说明暴露成功。

二。使用CXF开发Web Servive客户端(新建Java Project名字叫WS_Client)

  1. 调用CXF提供的wsdl2java工具,根据wsdl文档生成相应的Java代码。任何语言实现了Web Service,都需要提供,并暴露WSDL文档。
  2. 找到wsdl2java所生成的类中,一个继承(extends)了Service的类,该类的实例可以当成工厂来使用。
  3. 调用Service子类的实例的getXxxPort()方法,返回远程Web Service代理

猜你喜欢

转载自www.cnblogs.com/chenhongarticles/p/8999438.html
今日推荐