欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MyEclipse配置WebService六步曲(xfire)

程序员文章站 2022-07-15 08:57:11
...

MyEclipse配置WebService的开发环境:

     JDK6 + MyEclipse 6.5

 

MyEclipse配置WebService概述:

    下面介绍了使用MyEclipse Web Service来迅速开发和测试一个HelloWorld Web Service,其中包括:

    1. 介绍了MyEclipse Web Services的基本概念

    2. 创建一个MyEclipse Web Services工程

    3. 创建一个简单的HelloWorld Web Service

    4. 在Web容器中,如Tomcat 5中部署Web Service

    5. 使用Web Services Explorer来测试部署的Web Services

 

XFire Java SOAP框架概述:

     MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的,XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,支持POJO和schema开发。 XFire支持 Web Services standards,Spring 整合, 支持JBI , 支持 JAXB,XMLBeans,Java 5 和JAX-WS,并支持HTTP, JMS, XMPP, In-memory传输协议。

 

MyEclipse配置WebService步骤一:创建Web Service工程

 

     在MyEclipse 5.0中引入了一个新的工程类型即Web Service工程,该工程扩展了MyEclipse Web Project来支持额外的Web Service配置,开发和部署。本部分将使用Web Services Project wizard来创建和配置一个新的Web Service Projects Web Service Wizard将完成下列的动作:

创建MyEclipse J2EE Web Project

 

在工程中的web.xml文件中配置XFire Servlet

 

创建XFire services.xml配置文件

 

在工程中的构建路径中添加MyEclipse-XFire类库

 

添加一个指定的MyEclipse web project builder到.projects文件,以便部署services.xml文件到它合适的位置。如: /WEB-INF/classes/META-INF/xfire/

 

 

运行Web Service Project Wizard

 

该向导包括三个页面, Page-1搜集Web Project配置细节, Page-2搜集XFire配置细节, Page-3在新建的构建路径中配置XFire类库

1. 执行Web Services Project Wizard.

 

1). 选择File>New>Other

2). 扩展MyEclipse种类按照J2EE工程的种类

3). 选择Web Services Project然后点击Next,如图所示

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                       Figure-1: New Project Wizard Launcher

 

2. 添加Project Name,点击Next

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                 Figure-2: Page-2, Collecting web configuration details

 

3.在向导的Page-2中添加XFire servlet和service.xml文件的配置信息,按照默认的值即可.

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                   Figure-3: XFire servlet and services.xml configuration

4.在向导的Page-3中选择类库添加到工程的构建路径中,其中XFire Core Library是需要的,如果要在工程中开发一个客户端应用, XFire HTTP Client Libraries也是需要的.

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                     Figure-4: Selecting XFire libraries to add to new web service project buildpath

 

5.选择Finish完成Web Service工程的创建过程

       Figure-5,显示了新创建的HelloWorld Web Service工程的组织结构,Web Service 工程和一个标准的MyEclipse Web工程很相似. XFire Web Service配置元素如图红色区域显示:

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                Figure-5: Web services artifacts of a new web service project

 

 

MyEclipse配置WebService步骤二. 创建Web Service-Code-first Strategy

在这部分将用MyEclipse Web Service Wizard并通过使用Code-first Strategy来创建一个HelloWorldService示例.

 

 

1. 执行MyEclipse Web Service Wizard,有两种方法来执行MyEclipse Web Service Wizard

方法1.从MyEclipse perspective toolbar中来执行向导

在打开的Web Service Wizard上的workbench上来选择新Web Service按钮

方法2.从workbench menubar执行向导

1. 从workbench menubar选择: File>New>Other>MyEclipse>Web Service

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                              Figure-6: Launching Web Service Wizard

 

 

2. 在Page-1选择HelloWorld 工程并选择Create web service from Java bean

 

3. 选择Next到Page-2

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                      Figure-7: Page-1 of new web service wizard

 

4. 填写Web Service的名字HelloWorldService

 

5. 选择Java Source folder或者选择New按钮来新建一个source folder

 

6. 填写Java package或者通过选择Browse按钮来选择一个已经存在的package.也可以选择New按钮来新建一个Java package

注意:对Service接口和Service执行的类的默认值是基于所填入Web Service名字来产生的.

 

7. 选择Next来初始化Web Service的创建过程

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                    Figure-8: Page-2 of new web service wizard.

 

该向导产生了IHelloWorldService Java接口和HelloWorldServiceImpl Java类.并且在services.xml配置文件中创建了一个﹤SERVICE>实体(如图所示),注意到example(String message)方法在接口类中产生,当Web Service部署后作为一个测试操作.

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                          Figure-9: Newly created HelloWorld interface and implementation class

 

 

MyEclipse配置WebService步骤三. 部署Web Service Project

 

Web Service可以部署在任何MyEclipse支持的J2EE应用服务器上,该部分将演示如何在Tomcat 5 Web容器上部署HelloWorld工程.

 

 

3.1部署HelloWorld Web Service Project

 

Figure-10显示了如何部署HelloWorld应用.

1. 从Server Manager中选择Deployer按钮(step-1)

2. 在Server Deployments对话框中选择Add to create a new deployment (step-2)

3. 在New Deployment对话框中选择HelloWorld工程并选择Exploded Archive选项

4. 在New Deployment对话框选择Finish来将HelloWorld在Tomcat 5默认的位置中打包为WAR

5. 选择OK完成部署

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                   Figure-10: Three-step deployment process

 

新HelloWorld WAR部署将出现在Server Manager视图中Tomcat 5节点下.

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                   Figure-11: Servers Manager View depicting deployed HelloWorld web service project

 

MyEclipse配置WebService步骤四. 启动Tomcat服务器

 

MyEclipse配置WebService步骤五. 使用Web Service Explorer测试Web Service

 

MyEclipse提供了一个Web Service Explorer来测试Web Service.

1. 在MyEclipse perspective中选择toolbar button来执行Web Service Explorer

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                Figure-15: Web Services Explorer launch button on workbench toolbar

 

 

2. 选择WSDL模式(Figure-16)

 

3. 在活动面板中键入HelloWorldService WSDL文档的

URLhttp://localhost:8080/HelloWorld/services/HelloWorldService?WSDL,Web Service Explorer将下载自动产生的WSDL文档,该WSDL文档由XFire framework,并产生一系列的操作能够调用service.

 

4. 在活动面板中选择example操作并在in0域中键入HelloWorld

 

5. 选择Go按钮来调用在HelloWorldService上的example操作,结果出现在Status面板上

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                   Figure-16: Web Services Explorer testing HelloWorldService

 

 

MyEclipse配置WebService步骤六. 创建Java Test客户端

 

XFire提供了一个动态的代理框架,能够读取WSDL文档和创建潜在的消息服务使Java类来执行在Web Service的行为.该部分将为HelloWorld Web Service写一个Java Web Service客户端

 

6.1增加XFire类库配置

为了使example client能够在HelloWorld工程中运行,需要增加XFire HTTP Client类库到工程的构建路径中.

1. 在Package Explore视图中右击HelloWorld工程选择Build Path>Add Library

2. 选择MyEclipse Libraries

3. 选择XFire HTTP Client Libraries

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                                          Figure-17: Choosing the XFire HTTP Client Libraries

4. 选择Finish

 

6.2创建HelloWorldClient类

 

执行Java类向导来创建HelloWorldClient类

 

MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 

 

                               Figure-18: HelloWorldClient defined in New Java Class Wizard.

 

代码如下:

Java代码 MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP  MyEclipse配置WebService六步曲(xfire)
            
    
    博客分类: 经验技巧 MyeclipseWebServiceWebTomcatSOAP 
  1. package org.arthur.webservice.demo.client;   
  2.   
  3.   
  4. import org.arthur.webservice.demo.IHelloWorldService;   
  5.   
  6. import org.codehaus.xfire.*;   
  7. import org.codehaus.xfire.service.*;   
  8. import org.codehaus.xfire.service.binding.*;   
  9. import org.codehaus.xfire.client.*;   
  10. import java.net.*;   
  11.   
  12. public class HelloWorldClient {   
  13.     /**  
  14.      * *  
  15.      *   
  16.      * @param args  
  17.      */  
  18.     public static void main(String[] args) {   
  19.            
  20.         Service srvcModel = new ObjectServiceFactory().create(IHelloWorldService.class);   
  21.            
  22.         XFireProxyFactory factory =new XFireProxyFactory(XFireFactory.newInstance().getXFire());   
  23.            
  24.         String helloWorldURL ="http://localhost:8080/webServiceDemo/services/HelloWorldService";   
  25.            
  26.         try {   
  27.             IHelloWorldService srvc = (IHelloWorldService)factory.create(srvcModel, helloWorldURL);   
  28.             String result = srvc.example("hello world");   
  29.             System.out.print(result);   
  30.                
  31.         } catch (MalformedURLException e){   
  32.             e.printStackTrace();   
  33.         }   
  34.     }   
  35. }  
package org.arthur.webservice.demo.client;


import org.arthur.webservice.demo.IHelloWorldService;

import org.codehaus.xfire.*;
import org.codehaus.xfire.service.*;
import org.codehaus.xfire.service.binding.*;
import org.codehaus.xfire.client.*;
import java.net.*;

public class HelloWorldClient {
	/**
	 * *
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		
		Service srvcModel = new ObjectServiceFactory().create(IHelloWorldService.class);
		
		XFireProxyFactory factory =new XFireProxyFactory(XFireFactory.newInstance().getXFire());
		
		String helloWorldURL ="http://localhost:8080/webServiceDemo/services/HelloWorldService";
		
		try {
			IHelloWorldService srvc = (IHelloWorldService)factory.create(srvcModel, helloWorldURL);
			String result = srvc.example("hello world");
			System.out.print(result);
			
		} catch (MalformedURLException e){
			e.printStackTrace();
		}
	}
}

 

该段代码定义了创建一个XFire web service proxy的过程,该代理支持POJO IHelloWorldService接口

 

右键点击Run As>Java Application或者Debug As>JavaApplication来运行或调试该程序