java利用CXF实现WebService 实例

一、Web Service基本概念

Web Service也叫XML Web Service. WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他可以通过SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。


二、调用方式

1.wsimport命令行生成:wsimport工具是java jdk提供的工具。cmd进入,输入如下命令:

wsimport -d D:\test -keep -verbose  http://127.0.0.1:8080/hello?wsdl

-d 表示输出的目录,目录必须事先存在,否则导出失败。

-keep 表示导出webservice的class文件时是否也导出源代码java文件

-verbose verbose表示详细信息

注:也可以利用Eclipse,新建Web Service Client项目,输入已有的wsdl地址,并自己指定包名,生成客户端的生成,调用webservice服务

2.HttpClient:可以用来调用webservie服务,也可以抓取网页数据

三、WebService实例(使用CXF工具包)

引入CXF工具包到项目中(这边我使用的是Apache-CXF-3.1.6),可以到 官网 自行下载

1.WebService服务端:

①接口类:在类上注解WebService

import javax.jws.WebService;

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


②实现类:

import java.util.Date;

import javax.jws.WebService;

import com.ywx.HelloWorld;

@WebService(endpointInterface="com.ywx.HelloWorld",serviceName="HelloWorldWs")//指定webservice所实现的接口以及服务名称
public class HellowWorlds implements HelloWorld{
	@Override  
    public String sayHi(String name) {  
        return name+"您好!现在时间是:"+new Date();  
    } 
}

③Web Service暴露WSDL地址函数(发布Web Service):

import javax.xml.ws.Endpoint;

import com.ywx.HelloWorld;
import com.ywx.impl.HellowWorlds;

public class ServiceMain {
	public static void main(String args[]){  
        HelloWorld hw = new HellowWorlds();  
        //调用Endpoint的publish方法发布Web Service  
        Endpoint.publish("http://192.168.1.105/wstest", hw);  
        System.out.println("Web Service暴露成功!");  
    } 
}
写完3个类后,运行main方法,通过publish方法发布Web Service,在浏览器输入http://192.168.1.105/wstest?wsdl显示如下,则发布成功(注意这边测试的时候IP对应的是本机的IP):


2.WebService客户端:

①新建 Web Service Client 项目



然后点击next直至Finish,生成Web Service Client 客户端,自动生成如下几个文件:




②写一个测试类,调用WebService接口方法:

public class TestServiceClient {
	public static void main(String[] args) {
			HelloWorldWs service = new HelloWorldWs();
			HelloWorld hw = service.getHellowWorldsPort();
			//hw.sayHi("wuyijun");
			System.out.println(hw.sayHi("wuyijun"));
	}
}
控制台显示调用成功:



到这为止,Web Service实例已经测试成功,下一节将会对CXF和Spring进行整合,通过配置文件,把Web Service服务放到Tomcat服务器上,并用另一个项目进行调用。。。



  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值