1.CXF简介
Apache CXF是一个开源的Service框架,可以用于简化用户的service开发,基于CXF开发的应用可提供SOAP、XML/HTTP、RESTFUL HTTP或CORBA等服务。CXF底层页可以使用不同的传输协议,包括HTTP、JMS或JBI等。
根据CXF官方的说明,CXF包含以下特性:
- 支持大量的Web Service标准,包括SOAP、WS-I Basic Profile、WSDL、WS-Addressing、WS-Policy、WS-ReliableMessaging和WS-Security。
- CXF支持大量的前端(frontend)编程模型。CXF实现了标准的JAX-WS API,它也包括一种被称为简单前端(simple frontend)的模型,这种模型无需annotation支持。CXF支持web service的两种开发模式:①规则(contract)优先的开发模式,即通过编写WSDL来开发web service;②代码优先的开发模式,即通过编写java代码来开发webservice.
2.CXF下载和安装
下载并安装CXF步骤如下:
(1)登陆CXF官方站点:http://cxf.apache.org/,下载CXF最新版。笔者下载的为3.0.1版。
etc:该目录主要存放了CXF框架的一些杂项。
lib:该目录存放了CXF的核心类库以及编译和运行所依赖的第三方类库。
licenses:该目录下存放CXF以及第三方框架的授权文件。
modules:该目录下存放CXF按模块打包的jar包。
samples:该目录下存放了CXF的大量示例应用。这些应用是学习CXF极好的资料。
license和readme等文档
(3)将解压路径下的bin目录添加到系统的path环境变量,以便操作系统能找到bin目录下的命令,方便以后使用CXF提供的小工具。
3.Web Service注释介绍
webservice注释主要有:
@WebService:定义服务,用在类上
@WebResult:定义返回值,用在方法上
4.使用CXF开发web service
由于是初学,这里先写一个最简单的hello world。
(1)eclipse下创建一个新的java项目CXFTest
package test; import javax.jws.WebService; @WebService public interface HelloWorld { public String sayHello(String name); }(4)在test包中创建HelloWorld接口的实现类HelloWorldImpl,代码为:
package test; import javax.jws.WebService; @WebService public class HelloWorldImpl implements HelloWorld { @Override public String sayHello(String name) { System.out.println("sayHello方法被调用"); return ("Hello"+name); } }(5)创建主类MainServer,用来发布webservice
package test; import javax.xml.ws.Endpoint; import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxws.JaxWsServerfactorybean; public class MainServer { public static void main(String[] args) { //第一种发布方式:通过CXF提供的JaxWsServerfactorybean来发布webservice JaxWsServerfactorybean factory = new JaxWsServerfactorybean(); factory.setServiceClass(HelloWorldImpl.class); factory.setAddress("http://localhost:8080/HelloWorld"); Server server = factory.create(); server.start(); //第二种方式,通过JAX-WS提供的Endpoint来发布webservice //首先创建webservice服务提供类的实例 HelloWorldImpl implementor = new HelloWorldImpl(); String address = "http://localhost:8080/HelloWorld"; Endpoint.publish(address,implementor); } }执行服务端代码,可以看到eclipse输出如下,说明webservice成功发布
在浏览器输入如下地址http://localhost:8080/HelloWorld?wsdl,可以访问该webservice服务的WSDL
package test; import org.apache.cxf.jaxws.JaxWsProxyfactorybean; public class HelloWorldClient { public static void main(String[] args) { JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean(); factory.setAddress("http://localhost:8080/HelloWorld"); factory.setServiceClass(HelloWorld.class); HelloWorld helloWorld = (HelloWorld) factory.create(); System.out.println(helloWorld.sayHello("zhuwei")); } }就可以通过客户端访问webservice服务了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。