开发环境

    Sun Java 5+ Eclipse 3.2 +MyEclipse 5.0.0.

概述

本文介绍了使用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传输协议.

一. 创建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文件到它合适的位置.如: <webroot>/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,如图所示

Figure-1: New Project Wizard Launcher 
    2. 添加Project Name,点击Next

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

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

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配置元素如图红色区域显示:

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

二. 创建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

Figure-6: Launching Web Service Wizard

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

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的创建过程

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

Figure-9: Newly created HelloWorld interface and implementation class

Web Service 服务端服务接口代码

package org.stephencat.ws;
//Generated by MyEclipse

public interface IHelloWorldService {
    
    public String example(String message);
    
}

Web Service 服务端服务实现代码

package org.stephencat.ws;
//Generated by MyEclipse

public class HelloWorldServiceImpl implements IHelloWorldService {
    
    public String example(String message) {
        return message + " This is Xfire !!";
    }
    
}

    三. 部署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完成部署

Figure-10: Three-step deployment process 
    新HelloWorld WAR部署将出现在Server Manager视图中Tomcat 5节点下.

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

四. 启动Tomcat服务器 ( 或 JBoss 服务器

五. 使用Web Service Explorer测试Web Service 
    MyEclipse提供了一个Web Service Explorer来测试Web Service. 
    1. 在MyEclipse perspective中选择toolbar button来执行Web Service Explorer

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

2. 选择WSDL模式(Figure-16) 
    3. 在活动面板中键入HelloWorldService WSDL文档的URL

http://localhost:8080/HelloWorld/services/HelloWorldService?WSDL

Web Service Explorer将下载自动产生的WSDL文档,该WSDL文档由XFire framework,并产生一系列的操作能够调用service. 
    4. 在活动面板中选择example操作并在in0域中键入HelloWorld 
    5. 选择Go按钮来调用在HelloWorldService上的example操作,,结果出现在Status面板上

Figure-16: Web Services Explorer testing HelloWorldService

六. 创建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

Figure-17: Choosing the XFire HTTP Client Libraries 
    4. 选择Finish 
    6.2创建HelloWorldClient类 
    执行Java类向导来创建HelloWorldClient类

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

Web Service 客户端代码如下:

package org.stephencat.ws;

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 url =
           "http://localhost:8080/HelloWorld/services/HelloWorldService";
        try {
            IHelloWorldService srvc = (IHelloWorldService)factory.create(srvcModel, url);
           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来运行或调试该程序

在 MyEclipse 5.1GA 上使用 XFire 编写 Web Service相关推荐

  1. 基于xfire发布web Service简单实例

    创建接口 package com.test.service; public interface CaculatorService {public int add(int a,int b);public ...

  2. 使用XFire+Spring构建Web Service(一)——helloWorld篇

    来源:http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html XFire 是与Axis 2并列的新一代Web Service框架 ...

  3. MyEclipse下开发Web Service(转)

    http://hi.baidu.com/banseon/blog/item/6cf5e2133e0535005baf53d2.html 本文介绍了使用MyEclipse Web Service来迅速开 ...

  4. Windows Mobile使用Web Service上传和下载二进制数据流

    最近,有个项目需要使用手机GPRS上传数据,使用CMNET接入GPRS(注解1),但是此种方式流量过大,用户反映每月50块钱包500M的流量还不够用(严重怀疑中,不过我也没论证).后来仔细研究了下代码 ...

  5. 图文并茂——使用xfire编写webservice,并通过C#调用

    .首先建立一个web service工程: 点击finish之后,myeclipse自动帮你生成services.xml以及web应用目录结构,其中的services.xml是你导出服务的配置文件,注 ...

  6. 绑定成员函数表达式上的非法操作_在优麒麟上使用MPV编写自己的播放器

    上一期,小编给大家简要介绍了MPV的配置和使用方法,虽然MPV功能强大,但默认情况下,MPV无GUI图形界面,用户需要通过命令行或者手动修改其配置文件达到配置MPV的目的,这样就给普通用户带来了诸多不 ...

  7. 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...

    在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例.就像功能测试一样,当测试人员做了一些操作之后必然会判断实际结果是否等于预期结果,只不过,这个 ...

  8. 抖音爱心c语言程序,抖音上用记事本编写爱心小程序教程

    本文实例为大家分享了抖音上用记事本编写爱心小程序的具体代码,供大家参考,具体内容如下 先上一波效果图: 一颗旋转的小心心 七夕的前一天晚上,当我满怀期待的把这颗"爱心"展示给我女朋 ...

  9. 在Android上用PHP编写应用- PFA初探

    原文链接:http://blog.csdn.net/hfahe/article/details/5775208 概述 Android上的主要开发语言是Java,让很多PHPer觉得非常遗憾.但是自从A ...

最新文章

  1. Dan Gillmor总结微软付费平息纠纷历史
  2. AI干货系列一:为什么AI预测更智能?
  3. [实变函数]4.4 依测度收敛
  4. Http服务添加认证
  5. 一天搞定CSS: CSS选择器优先级--08
  6. 小甲鱼c++学习视频之运算符重载
  7. Spring Boot 中使用 Swagger2 构建强大的 RESTful API 文档
  8. find : 路径必须在表达式之前
  9. derby数据库的数据_Derby数据库备份
  10. c# mysql sdr_C#结合数据库实现验证识别ID卡内容的方法
  11. 上机演练 幸运抽奖活动
  12. [脚本收集]提取Tripntale图片
  13. Spark灰度发布在十万级节点上的实践
  14. Node.js + Express 4+angularjs随笔小记,不供参考
  15. 对比学习系列论文CPC(一)——CPC概览
  16. 如何导出魔兽3模型到3Dmax里
  17. 关于UEFI引导的理解
  18. 渲染吃显卡还是CPU,如何高效3D渲染?
  19. HDU-2594 Simpsons’ Hidden Talents
  20. 深入解读四轴飞行器的硬件设计

热门文章

  1. h5如何上传文件二进制流_HTML5新特性之文件和二进制数据的操作
  2. (王道408考研操作系统)第三章内存管理-第二节3:页面置换算法1
  3. 高性能、高并发TCP服务器(多线程调用libevent)
  4. Shell 判断数是否为某数的倍数
  5. 设置防火墙规则,防止因为TCP第三次握手,系统自动返回包
  6. python类及其方法
  7. Nessus进行漏洞扫描的过程
  8. 解决TeXstudio外部查看器失败方法
  9. Mysql 学习笔记08
  10. Python学习day2 while循环格式化输出运算符