【Web Service 李刚视频的学习笔记】
一。使用CXF开发Web Servive服务器端(新建Java Project名字叫WS_Server)//每个Web Service组件都需要2个部分,接口和实现类。
- 开发一个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 }
- 开发一个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 }
- 导入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)
- 调用CXF提供的wsdl2java工具,根据wsdl文档生成相应的Java代码。任何语言实现了Web Service,都需要提供,并暴露WSDL文档。
- 找到wsdl2java所生成的类中,一个继承(extends)了Service的类,该类的实例可以当成工厂来使用。
- 调用Service子类的实例的getXxxPort()方法,返回远程Web Service代理
原文地址:https://www.cnblogs.com/chenhongarticles/p/8999438.html
时间: 2024-10-13 07:20:27