在 MyEclipse 5.1GA 上使用 XFire 编写 Web Service


   开发环境

    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来运行或调试该程序

展开阅读全文

Git 实用技巧

11-24
这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

实用主义学Python(小白也容易上手的Python实用案例)

12-24
原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会  【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例
©️2020 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值