WebService教程

开发环境 
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文件到它合适的位置.如: /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配置文件中创建了一个实体(如图所示),注意到example(String message)方法在接口类中产生,当Web Service部署后作为一个测试操作.

Figure-9: Newly created HelloWorld interface and implementation class

三. 部署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服务器 
五. 使用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文档的URLhttp://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. 
代码如下:

Java代码   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/HelloWorld/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来运行或调试该程序

时间: 2024-10-02 05:06:31

WebService教程的相关文章

WebService教程详解(一)_java

Web Services 可以将应用程序转换为网络应用程序. 通过使用 Web Services,您的应用程序可以向全世界发布信息,或提供某项功能. Web Services 可以被其他应用程序使用. 通过 Web Services,您的会计部门的 Win 2k 服务器可以与 IT 供应商的 UNIX 服务器相连接. 基本的 Web Services 平台是 XML+HTTP. Web services 使用 XML 来编解码数据,并使用 SOAP 来传输数据. 什么是webService We

WebService教程详解(二)_java

在上篇文章给大家介绍了WebService教程详解(一) 使用工具的原因: 1. 使用工具可以更好的了解WebService请求的过程 2. 使用工具WsExplore可以获取SOAP数据发送和接收的格式 3. 使用工具Tcp/Ip Monitor可以监控拦截器请求头和响应头的具体数据 什么是SOAP? SOAP是一种基于XML编码规范的文本协议,简单的说SOAP就是在HTTP的基础上传输XML数据,以实现远程调用[无论你的服务端是什么语言书写的,只要接收SOAP协议的XML数据,并返回SOAP

求java webservice教程

问题描述 网上找了好多都没找到各位大哥,帮帮忙,给个webservice视频书也行先谢了 解决方案 解决方案二:这方便视频没看看axis/xfire资料吧比较简单的解决方案三:给我邮箱.我发给你,没视频就一个文档.解决方案四:引用楼主yuquanzuoa的回复: 网上找了好多都没找到各位大哥,帮帮忙,给个webservice视频书也行先谢了 建议去看看目前流行的Xfile和JDK1.6自带的webservice解决方案五:引用2楼dr_lou的回复: 给我邮箱.我发给你,没视频就一个文档. yu

Java web Service 引擎 Xfire 图文教程

1.给web项目添加web service支持,web.xml文件会自动修改. <SERVLET-NAME>XFireServlet</SERVLET-NAME> <SERVLET-CLASS>org.codehaus.xfire.transport.http.XFireConfigurableServlet</SERVLET-CLASS> <LOAD-ON-STARTUP>0</LOAD-ON-STARTUP> <SERVLE

WebService服务和ajax使用教程

ajax|web|教程 题外话: WebService技术已经有好几年的历史了,关于基础的理论知识,此处省去,不说了.最近被炒了的ajax技术也被滥用的很是严重,至于细节,不是我说的重点. ajax技术的入门比较低,javascript和xml的一点利用,个人以为没啥含量,不能在根本上解决企业的需求或者问题,在安全性,线路传输的低级等方面都有致命的问题. 为什么要把WebService和ajax放一起,原因很简单, 两者的共同点准确的来说是经常按照同一数据协议--------XML. 本文全部源

教程:使用WebService进行异步通信

web|教程|异步 通常在WEB应用程序中不会考虑到这个需求.做智能客户端的时候,当用到WebService时,由于服务器处理速度.网络传输速度等各种原因会使一个WebService从请求开始到获得响应结果之间等待一段时间,这时候线程会处于阻塞状态,程序会等待请求结果导致客户端无法进行其他的动作或处理.这时候就需要异步的使用WebService. 最容易被想到的方法当然是建立一个新的线程来执行WebService的请求并获得结果,这样就可以不影响程序的主线程的工作,并且也非常容易实现,但是在一个

jax-ws之webservice security(安全)教程第一天

前言: 在前面的"5天学会jaxws-webservice教程",我们讲了基本的jax-ws的使用. Jax-ws是业界公认的标准的webservice,它已经成为了一个行业界标准,包括cxf,其实cxf也是调用的jax-ws为标准的基于spring的webservice框架. 同时,大家都知道世界上除了j2ee体系外,还存在.net体系,同时有过相关经验的同事们也知道用ws-security无非就是涉及到"加密","解密",而JAVA的x509

jax-ws之webservice security(安全)教程第三天

前言: 在今天的学习中,我们讲开始过渡到一个真正的websecurity例子. 第二天中我们知道了如何使用handler来处理客户端提交上来的用户名与密码,而在今天的学习中,我们将会使用服务端预先配置的用户名与密码来authenticate客户端提交上来的值. 相对于第二天的学习,如果客户端提交的用户名与密码输错,但还是能够与服务端建立http连接来说,第三天中的例子的安全性则更高,当客户端提交上来的用户名与密码错误则更本不可能和服务端建立起有效的http连接.该例子同时适用于一切J2EE Ap

jax-ws之webservice security(安全)教程第二天

前言: 第一天里说了如何用jax-ws去结合ssh框架. 在今天的教程中将会向大家详细讲述一个ws-security中的一个传统的"基于handler"来认证客户端传来的用户名密码的webservice. 客户端传过来一对用户名和密码,服务端进行认证. 当然,我们此处说这个用户名和密码的传送,那可不是用下面的这种形式来传送的哦:  http://xxx.do?username=xxx&password=xxx. 我们这个用户名和密码是带在soap报文中的, jax-ws用一个h