2种实现CXF方法例子
大家好,今天我要介绍的现实webservice的一种技术——CXF
由于本人是一个菜鸟,所以下面所做的都是一些简单的小例子!希望能帮到有需要的同学!好了,废话就不多说了,直接进入正题!
开发环境:myeclipse8.5 + tomcat6.0 + jdk1.6
CXF版本:apache-cxf-2.3.5.zip(在这里介绍一个下载包的网址给大家:http://www.jar114.com)
把apache-cxf-2.3.5.zip解压出来后,如下图所示目录:(不做解析了)
下面所作的小例子都用到lib文件夹下面的包(不介意的话就全部加进项目里)!
新建一web项目,名称叫HelloWorldCXF
建一包:com.cxf.dao,在该包下新建一接口,命名为:HelloWorld,代码如下:
package com.cxf.dao;
import javax.jws.WebService;
@WebService
public interface HelloWorld {
public String sayHello(String username);
}
建一包:com.cxf.service,在该包下新建一个类,命名为:HelloWorldImpl,代码如下:
package com.cxf.service;
import javax.jws.WebService;
import com.cxf.dao.HelloWorld;
@WebService
public class HelloWorldImpl implements HelloWorld {
public String sayHello(String username) {
System.out.println("say hello is called!");
return "Hello" + username;
}
}
新建一测试包:com.cxf.action,在该包下建一个类,类名为:HelloTest,代码如下:
package com.cxf.action;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import com.cxf.service.HelloWorldImpl;
public class HelloTest {
public static void main(String[] args) {
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
// Web服务的地址
factoryBean.setAddress("http://localhost:8081/hello");
// Web服务对象调用接口
factoryBean.setServiceClass(HelloWorldImpl.class);
Server server = factoryBean.create();
server.start();
}
}
执行代码后,在浏览器打开:http://localhost:8081/hello?wsdl 能如下显示的,证明服务器已经发布成功!
新建一web项目,名称叫HelloWorldCXFClient
新建一个包,这个包的名称和服务器包的名称一样的:com.cxf.dao,里面的接口和方法也必须和服务器的一样:
package com.cxf.dao;
import javax.jws.WebService;
@WebService
public interface Hello {
//这里的接口方法必须跟服务器接口里面的方法一致
public String sayHello(String username);
}
新建一个测试类:代码如下
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.cxf.dao.Hello;
public class ClientTest {
public static void main(String []trgs){
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
//获取服务器端
factoryBean.setAddress("http://localhost:8081/hello");
//通过客户端的接口获取服务器端的接口
factoryBean.setServiceClass(Hello.class);
Hello hello =(Hello) factoryBean.create();
System.out.println(hello.sayHello("和谐dota"));
}
}
执行代码,控制台能打印出:Hello和谐dota!
到这,一个完整的CXF小例子就完成了!
不知道大家有没有注意到,上面的接口和现实类都存在有一个标签:@WebService
这个标签的作用是:指明接口是Web 服务
当然你也可以不用这个方式去实现,直接用手动的去进行指明也是可以的!!下面就是用手动这种方式现实功能的,希望大家能找出这2个方法的不同之处!
新建一web项目,名称叫HelloWorldCXF
建一包:com.cxf.dao,在该包下新建一接口,命名为:HelloWorld,代码如下:
package com.cxf.dao;
import javax.jws.WebService;
public interface HelloWorld {
public String sayHello(String username);
}
建一包:com.cxf.service,在该包下新建一个类,命名为:HelloWorldImpl,代码如下:
package com.cxf.service;
import javax.jws.WebService;
import com.cxf.dao.HelloWorld;
public class HelloWorldImpl implements HelloWorld {
public String sayHello(String username) {
System.out.println("say hello is called!");
return "Hello" + username;
}
}
新建一测试包:com.cxf.action,在该包下建一个类,类名为:HelloTest,代码如下:
package com.cxf.action;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import com.cxf.service.HelloWorldImpl;
public class HelloTest {
public static void main(String[] args) {
//发布服务器
ServerFactoryBean factoryBean = new ServerFactoryBean();
// 获取Web服务的地址
factoryBean.setAddress("http://localhost:8080/hello");
// Web服务对象调用接口
factoryBean.setServiceClass(Hello.class);
// Web服务对象调用实现接口类
HelloImpl hello = new HelloImpl();
factoryBean.setServiceBean(hello);
// 发布web服务器
factoryBean.create();
}
}
执行代码后,在浏览器打开:http://localhost:8081/hello?wsdl 能如下显示的,证明服务器已经发布成功!
新建一web项目,名称叫HelloWorldCXFClient
新建一个包,这个包的名称和服务器包的名称一样的:com.cxf.dao,里面的接口和方法也必须和服务器的一样:
package com.cxf.dao;
import javax.jws.WebService;
public interface Hello {
//这里的接口方法必须跟服务器接口里面的方法一致
public String sayHello(String username);
}
新建一个测试类:代码如下
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import com.cxf.dao.Hello;
public class ClientTest {
public static void main(String []trgs){
//客户端对象
ClientProxyFactoryBean factoryBean = new ClientProxyFactoryBean();
//获取服务器端
factoryBean.setAddress("http://localhost:8080/hello");
//通过客户端的接口获取服务器端的接口
factoryBean.setServiceClass(Hello.class);
Hello hello ;
hello =(Hello) factoryBean.create();
System.out.println(hello.sayHello("和谐dota"));
}
}
执行代码,控制台能打印出:Hello和谐dota!
相关推荐
8. **示例代码**:“2种实现CXF方法例子”和“我的Eclipse6_5上基于JAX-WS开发Webservice(中文示例)”提供了具体的代码示例,这对于学习和理解如何使用CXF创建Web服务非常有帮助。 9. **比较JAX-RS实现**:“InfoQ ...
Web服务在IT行业中扮演着重要的角色,它允许不同的应用程序通过网络进行通信和交换数据。CXF是一个流行的开源Java框架,用于...通过学习这个例子,开发者可以掌握CXF的基本使用方法,进一步拓展到更复杂的Web服务场景。
客户端则是通过 CXF 的 wsdl2java 工具,从服务器发布的 WSDL 文件生成对应的 Java 客户端代码。这些代码包含了调用服务所需的所有接口和数据类型。在进行安全认证时,客户端也需要提供相应的认证信息,如用户名和...
标题"cxg入门例子"表明我们将探讨如何开始使用CXF进行Web服务开发。这通常涉及以下几个关键步骤: 1. **环境配置**:首先,你需要在你的开发环境中安装Java Development Kit (JDK) 和Apache CXF。你可以通过Maven或...
【标题】:“Cxf例子Cxf例子我自己写的” 在IT领域,Apache CXF是一个非常流行的开源框架,用于构建和开发Web服务。CXF允许开发者利用Java编程语言来创建和使用Web服务,支持SOAP、RESTful等多种通信模式。本示例是...
CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它提供了一种在Java应用程序中创建和消费Web服务的方式。本教程将基于CXF构建一个简单的Web服务,包括服务端和客户端的实现。我们将使用CXF提供的...
本示例提供的“webServicecxf”和“webServicecxfClient”分别代表服务端和客户端的实现,是CXF框架应用的典型实例。通过这两个项目,我们可以深入理解CXF的工作原理和使用方法。 服务端(webServicecxf): 服务端...
在这个"CXF soap例子源码"中,我们可以深入理解如何使用CXF框架来实现基于SOAP的Web服务。 首先,SOAP是一种基于XML的协议,允许应用程序通过HTTP或其他传输协议进行通信。在CXF中,你可以使用Java API for RESTful...
CXF客户端调用例子展示了如何使用CXF来创建和消费Web服务。这个例子包含了服务端和客户端两部分,两者都是用Java语言编写的。 在Java中,CXF提供了丰富的API和工具,使得开发者能够方便地实现SOAP(Simple Object ...
2. **CXF与Spring的关系**: 虽然CXF通常与Spring框架一起使用,因为它可以很好地集成到Spring的IoC(Inversion of Control)容器中,但这个例子表明,CXF也可以独立于Spring运行。这为不使用Spring或希望减少对...
服务器端是CXF服务的实现,它会暴露一个或多个接口供客户端调用。在这个例子中,开发者可能定义了一个Java接口,然后通过CXF工具将其转换为Web服务。这个过程通常涉及到WSDL(Web Services Description Language)的...
【标题】"CXF安全验证例子"涉及...通过分析和运行这些源码,开发者可以学习到如何在实际项目中配置和实现CXF的安全验证机制,确保Web服务的安全通信。这有助于提高开发者在处理敏感数据和高安全性需求的应用时的能力。
【CXF+SPRING例子】是一个关于如何将Apache CXF与Spring框架整合的示例项目。Apache CXF是一个开源服务框架,它允许开发者创建和消费Web服务,而Spring框架则是Java应用开发的强大支撑,提供了依赖注入、AOP(面向切...
3. **配置Spring**:编写Spring的配置文件,如`applicationContext.xml`,声明 CXF 的服务端点(SEI,Service Endpoint Interface)和实现,以及Struts2的Action类。 4. **配置CXF**:在`cxf-servlet.xml`或类似的...
【标题】"cxf webService简单例子"是一个关于使用Apache CXF框架...在这个"简单例子"中,我们很可能会看到上述步骤的具体实现,通过阅读源码和运行例子,可以更深入地理解CXF框架的工作原理及其在Web服务开发中的应用。
CXF提供了多种方式来实现Web服务,包括JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。本压缩包中的例子旨在帮助初学者了解和掌握CXF框架的使用,并结合Spring框架进行...
在"CXF_DEMO webservice demo例子"中,我们可以通过两个主要部分来理解CXF的工作原理:`cxf_server.zip`和`cxf_client.zip`。 1. **服务器端(cxf_server.zip)**: - **服务接口定义**:在服务器端,通常我们需要...
这是一个简单的例子,仅定义了一个方法`sayHi`,该方法接受一个字符串参数并返回一个字符串。 ```java package org.yifeng.service; public interface HelloWorldService { String sayHi(String text); } ``` ##...
【CXF实现的Web服务(WebService)例子Demo详解】 Apache CXF是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)的应用程序。它提供了丰富的API和工具,使得开发者能够轻松地创建和部署Web服务。CXF支持...
在本例中,“webservice天气预报例子cxf实例”指的是使用Apache CXF框架实现的一个天气预报相关的Web服务示例。 Apache CXF是一个开源框架,它为开发和部署Web服务提供了全面的支持。CXF允许开发者通过Java编程模型...