zoukankan      html  css  js  c++  java
  • [转]在 MyEclipse 5.1GA 上使用 XFire 编写 Web Service

    转自:http://www.blogjava.net/liyingcheng/archive/2007/10/24/155602.html

     

    开发环境
        Sun Java 5+ Eclipse 3.2 +MyEclipse 5.0.0. 

        概述 

        本文介绍了使用MyEclipseWeb Service来迅速开发和测试一个HelloWorld Web Service,其中包括: 
        1. 介绍了MyEclipse Web Services的基本概念 
        2. 创建一个MyEclipse Web Services工程 
        3. 创建一个简单的HelloWorld WebService 
        4. 在Web容器中,如Tomcat 5中部署Web Service 
        5. 使用Web Services Explorer来测试部署的Web Services 

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

        一. 创建WebService工程 

        在MyEclipse 5.0中引入了一个新的工程类型即Web Service工程,该工程扩展了MyEclipseWeb 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 ProjectWizard. 
           1). 选择File>New>Other 
           2). 扩展MyEclipse种类按照J2EE工程的种类 
           3). 选择Web ServicesProject然后点击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 ClientLibraries也是需要的.


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

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


        Figure-5: Web services artifacts of a new web serviceproject 

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

        1. 执行MyEclipse Web Service Wizard,有两种方法来执行MyEclipse Web Service Wizard 
        方法1.从MyEclipseperspective toolbar中来执行向导 
        在打开的Web Service Wizard上的workbench上来选择新Web Service按钮 
        方法2.从workbenchmenubar执行向导 
        1. 从workbench menubar选择: File>New>Other>MyEclipse>Web Service


        Figure-6: Launching Web Service Wizard 

        2. 在Page-1选择HelloWorld 工程并选择Create web service from Javabean 
        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. 
        该向导产生了IHelloWorldServiceJava接口和HelloWorldServiceImpl Java类.并且在services.xml配置文件中创建了一个<service>实体(如图所示),注意到example(String message)方法在接口类中产生,当Web Service部署后作为一个测试操作.


        Figure-9: Newly created HelloWorld interface andimplementation class 

    Web Service 服务端服务接口代码

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

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


    Web Service 服务端服务实现代码

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

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


        
        三. 部署Web Service Project 
        Web Service可以部署在任何MyEclipse支持的J2EE应用服务器上,该部分将演示如何在Tomcat5 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在Tomcat5默认的位置中打包为WAR 
        5. 选择OK完成部署


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


        Figure-11: Servers Manager View depicting deployedHelloWorld web service project

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

        五. 使用WebService 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 workbenchtoolbar 

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

    http://localhost:8080/wstest/services/SampleService?WSDL

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


        Figure-16: Web Services Explorer testingHelloWorldService 

        六. 创建Java Test客户端 
        XFire提供了一个动态的代理框架,能够读取WSDL文档和创建潜在的消息服务使Java类来执行在Web Service的行为.该部分将为HelloWorldWeb Service写一个Java Web Service客户端 
        6.1增加XFire类库配置 
        为了使example client能够在HelloWorld工程中运行,需要增加XFireHTTP Client类库到工程的构建路径中. 
        1. 在Package Explore视图中右击HelloWorld工程选择Build Path>AddLibrary 
        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 ClassWizard. 

        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 SampleClient {

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


        }

    }


        该段代码定义了创建一个XFireweb service proxy的过程,该代理支持POJOIHelloWorldService接口 

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

  • 相关阅读:
    .Net高并发解决思路 以及乐观锁 悲观锁等
    HTTP和HTTPS TCP/IP的UDP和TCP Socket和WebSocket RabbitMq和队列 Redis和Memcached
    C# Attribute特性 泛型<T> 方法的out ref this(扩展方法) Equals与==
    C# 托管与非托管类型 堆和栈 值类型与引用类型 装箱与拆箱
    C# 递归、冒泡算法 委托与事件 链表 二叉树 平衡二叉树 红黑树 B-Tree B+Tree 索引底层 表达式树
    C# 爬取数据
    C# 常用设计模式 并发编程(异步 多线程) 锁与死锁 集合数组List
    C# NPOI Excel多级表头导出多个表
    windows Server 2016安装Sqlserver远程连接的坑
    hdfs之NameNode故障处理的两种方式
  • 原文地址:https://www.cnblogs.com/monica/p/1908240.html
Copyright © 2011-2022 走看看