`
javaeyetodj
  • 浏览: 431351 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Eclipse+CXF框架开发WebService服务实战

 
阅读更多

<转自http://blog.csdn.net/segen_jaa/article/details/12947305>

 

文章参考:http://wenku.baidu.com/view/3fbb558602d276a200292e8a.html

一、说明
采用CXF框架开发webservice。
所用软件及版本如下。
操作系统:Window XP SP3。
JDK:JDK1.6.0_07,http://www.oracle.com/technetwork/java/javase/downloads/index.html
Tomcat:apache-tomcat-6.0.14.exe,http://tomcat.apache.org/
IDE:eclipse-jee-juno-SR1-win32.zip,http://www.eclipse.org/downloads/
CXF:apache-cxf-2.6.10.zip,http://cxf.apache.org/download.html

二、JDK配置
安装JDK1.6.0,配置环境变量。

JAVA_HOME:C:\Program Files\Java\jre1.6.0_07。
Path:C:\Program Files\Java\jre1.6.0_07\bin。
CLASSPATH:C:\Program Files\Java\jre1.6.0_07\lib。
因本地只安装了JRE,故配置信息按JRE目录来设置。

三、Tomcat配置
安装Tomcat,运行apache-tomcat-6.0.14.exe。

端口号:8080
用户名:admin
密码:111111

安装完成后,启动tomcat。

访问:http://localhost:8080/。出现如下界面则部署成功。

四、CXF服务端
1、下载apache-cxf-2.6.10.zip包,解压后数据如下。

2、新建Dynamic Web Project。
File—New—Project。

工程名:MyService。

Target runtime要与安装的Tomcat一致,若不一致点击“New Runtime”设置。
比如我本地安装的Tomcat为v6.0。

Tomcat installation directory选择Tomcat安装目录。

Default output folder设置为:WebContent/WEB-INF/classes。

3、导入CXF库文件。
CXF库配置。

选中apache-cxf-2.6.10包下的lib目录,导入所有的jar文件。
本机目录为F: \Java开发\apache-cxf-2.6.10\lib。

添加完成后,会出现CXF名称库目录。

4、创建接口IcxfWB。
工程右键—New—Interface,添加代码:

 

[java] view plaincopy
 
  1. package com.yxj;  
  2.   
  3. import javax.jws.WebService;  
  4. import javax.jws.WebParam;  
  5. import javax.jws.WebMethod;  
  6.   
  7. @WebService  
  8. public interface IcxfWB {  
  9.     @WebMethod  
  10.     String sayHello(@WebParam(name="name") String name);  
  11. }  

说明:
@WebService:标记表示该接口是一个WebService服务。
@WebMethod:标记表示WebService中的方法。
@WebParam(name="paramName")表示方法中的参数,name属性限制了参数的名称,若没有指定该属性,参数将会被重命名。

 

5、创建服务实现类CxfWBImpl。

 

[java] view plaincopy
 
  1. package com.yxj;  
  2.   
  3. public class CxfWBImpl implements IcxfWB {  
  4.     public String sayHello(String name) {  
  5.         return "Hello "+name;  
  6.     }  
  7. }  

6、编辑WebContent/WEB-INF下web.xml文件。

 

 

[plain] view plaincopy
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  3.   <display-name>MyService</display-name>  
  4.   <context-param>  
  5.     <param-name>contextConfigLocation</param-name>  
  6.     <param-value>WEB-INF/service-beans.xml</param-value>  
  7.   </context-param>  
  8.   <listener>  
  9.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  10.   </listener>  
  11.   <servlet>  
  12.    <servlet-name>CXFServlet</servlet-name>  
  13.    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
  14.   </servlet>  
  15.   <servlet-mapping>  
  16.     <servlet-name>CXFServlet</servlet-name>  
  17.     <url-pattern>/*</url-pattern>  
  18.   </servlet-mapping>  
  19.   <welcome-file-list>  
  20.     <welcome-file>index.html</welcome-file>  
  21.     <welcome-file>index.htm</welcome-file>  
  22.     <welcome-file>index.jsp</welcome-file>  
  23.     <welcome-file>default.html</welcome-file>  
  24.     <welcome-file>default.htm</welcome-file>  
  25.     <welcome-file>default.jsp</welcome-file>  
  26.   </welcome-file-list>  
  27. </web-app>  

7、在WebContent/WEB-INF下创建刚才指定的service-beans.xml文件。

 

 

[html] view plaincopy
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.   xmlns:jaxws="http://cxf.apache.org/jaxws"  
  5.   xsi:schemaLocation="  
  6.     http://www.springframework.org/schema/beans  
  7.     http://www.springframework.org/schema/beans/spring-beans.xsd  
  8.     http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">  
  9.   <import resource="classpath:META-INF/cxf/cxf.xml"/>  
  10.   <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>  
  11.   <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>  
  12.   <bean id="SayHello" class="com.yxj.CxfWBImpl" />  
  13.   <jaxws:endpoint id="sayHello" implementor="#SayHello" address="/sayHello"/>  
  14. </beans>  

五、WebService部署
1、打包工程
右键工程—Export—WAR file,指定输出路径。

 

2、将war文件移动至apache-tomcat\webapps下。
本地操作是,复制F:\MyService.war到目录D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps。

3、复制CFX文件到tomcat下。
复制F:\常用软件\Java开发\apache-cxf-2.6.10\lib目录下文件到
F:\JavaRoot\workspace\MyService\WebContent\WEB-INF\lib。

4、重启Tomcat。
5、浏览器访问http://localhost:8080/MyService。

六、CXF客户端
1、生成Stub
CXF提供了一个名为“wsdl2java.bat”的工具,该工具可以通过WSDL为特定的服务创建 stub。本地目录,F:\常用软件\Java开发\apache-cxf-2.6.10\bin\下wadl2java工具。
命令wsdl2java –p 生成代码的包名 –d 生成代码的路径 wsdl地址。
本地命令如下。
wsdl2java -p com.yxj.client -d F:\clientsrc http://localhost:8080/MyService/sayHello?wsdl
生成结果文件在F:\clientsrc,生成文件如图。

2、新建Java Project。

3、将第一步中生成的F:\clientsrc文件夹下的所有java文件移至工程src下,刷新工程。

4、添加CXF包。

使用创建Service时配置好的CXF库。

6、新建包含有main方法的Class,代码如下。

 

[java] view plaincopy
 
  1. package com.yxj.client;  
  2.   
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  4. import com.yxj.client.IcxfWB;  
  5.   
  6. public class ClientCall {  
  7.   
  8.     /** 
  9.      * @param args 
  10.      */  
  11.     public static void main(String[] args) {  
  12.         // TODO Auto-generated method stub  
  13.         ClassPathXmlApplicationContext context   
  14.         = new ClassPathXmlApplicationContext(new String[] {"com/yxj/client/client-beans.xml"});   
  15.   
  16.         IcxfWB client = (IcxfWB)context.getBean("sayHello2");   
  17.         String response = client.sayHello("World");   
  18.         System.out.println("Response: " + response);   
  19.         System.exit(0);  
  20.     }  
  21. }  

7、在类ClientCall同级目录,即com/yxj/client下新建client-beans.xml配置文件。
文件内容如下。

 

 

[html] view plaincopy
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"   
  3.        xmlns:jaxws="http://cxf.apache.org/jaxws"   
  4.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans   
  6.           http://www.springframework.org/schema/beans/spring-beans.xsd   
  7.           http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">  
  8.     <jaxws:client id="sayHello2" serviceClass="com.yxj.client.IcxfWB" address="http://localhost:8080/MyService/sayHello?wsdl"/>   
  9. </beans>  

该方式访问ws服务是利用spring的依赖注入法,其中id是spring IOC容器唯一标识符,在代码中也是通过id获得服务对象的(context.getBean("sayHello2"));serviceClass是Webservices服务接口;address是服务的wsdl地址。

 

8、运行客户端,控制台输出。

 

[plain] view plaincopy
 
  1. Hello World  

 

OK,至此大功告成!

分享到:
评论

相关推荐

    使用CXF开发WebService服务器端和客户端

    - **IDE集成**:如Eclipse或IntelliJ IDEA,有CXF的插件,便于开发和调试Web服务。 - **应用服务器**:如Tomcat、Jetty等,用于部署和运行CXF服务。 **7. 实战演练** 学习CXF开发Web服务时,可以按照以下步骤进行...

    Webservice基础与实践--课程素材包

    3. **CXF框架**:学习如何使用CXF创建服务提供者和服务消费者,包括服务接口定义、服务实现、配置文件编辑等。 4. **RESTful Web服务**:了解REST(Representational State Transfer)的设计原则,以及如何使用CXF...

    webserveic开发

    总的来说,学习如何使用Eclipse开发Web服务,特别是与Apache CXF框架结合,将极大地提升开发者在分布式系统集成和API设计方面的技能。结合提供的资源,开发者可以逐步掌握从创建到部署Web服务的整个过程,从而在实际...

    cxf html.rar

    8. **示例代码**:“2种实现CXF方法例子”和“我的Eclipse6_5上基于JAX-WS开发Webservice(中文示例)”提供了具体的代码示例,这对于学习和理解如何使用CXF创建Web服务非常有帮助。 9. **比较JAX-RS实现**:“InfoQ ...

    WebService客户端调用服务器数据库

    - 开发环境中,例如Eclipse或IntelliJ IDEA,都有内置的工具支持生成和调试Web服务客户端。 - 测试工具,如SoapUI,可以帮助开发者在不编写代码的情况下测试Web服务接口。 7. 源码分析: - 对于提供的`...

    cxf 服务端搭建

    【描述】:在本文中,我们将探讨如何利用CXF框架来创建和运行一个简单的服务端应用。我们将不涉及过多的理论,而是专注于实践步骤,以帮助开发者快速入门。参考链接提供了一个博主的实战经验分享,通过他的博客文章...

    java工程师简历_java简历.doc

    3. **服务技术**:掌握WebService CXF,用于创建和消费Web服务,实现跨系统通信。 4. **数据库**:熟悉Oracle和MySQL数据库,具备基本的PL/SQL开发能力,对数据库优化有一定了解。 5. **缓存与队列技术**:使用...

    JavaWebServicesUpAndRunning.chm

    工具方面,可能介绍了Apache CXF、Glassfish Metro等Java Web服务框架,它们简化了服务的开发、部署和测试过程。开发者可以利用这些工具自动生成服务端代码、客户端代理,甚至WSDL文件。 在学习过程中,你还会了解...

    XFireWebservice

    XFire是Apache CXF项目的前身,它是一个轻量级、高性能的Web服务框架。XFireWebservice是XFire的一个特定应用场景,它专注于简化Java开发者创建Web服务的过程。其核心特点包括: 1. **简单的API**:XFire提供了一套...

    网络服务

    Java中实现RESTful服务最常用的框架是JAX-RS(Java API for RESTful Web Services),如Jersey、RESTEasy和Apache CXF。开发者可以通过注解来标记Java类和方法,使其成为可调用的REST端点。 "webservice-master"这...

Global site tag (gtag.js) - Google Analytics