MyEclipse下XFire开发Webservice实例 .
?? 最近在研究JAVA开发Webservice,发现网络上比较流行的几种选择AXIS、XFire、CFX(XFire的下一代),前几天转了几篇关于这三种选择的比较的文章,对它们已经有了些概念。决定自己实践一个例子
???? 在开始前,先介绍一些概念:
???? XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml )
??? 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传输协议
一、环境配置:MyEclipse7.0
???????????????????? JDK1.6
二、创建Web Service Project
????? 1)在MyEclipse中选择File—>New—>Other,选择Web Service Project
??????
????? 2)Project Name:WebServiceServer,Framework:XFire,其他选项默认
? ? ?
???? 3)Next,这一步保持默认值
???? 4)Project Library选择,选择XFire 1.2? Core Libraries
????
??? 5)Finish,创建成功后看到的工程目录如下:
???
??? 6)完成以上5步后,查看WebRoot/WEB-INF/web.xml
? ? ? ?? 这里指明了当遇到/services/*请求时,将选用XFireConfigurableServlet来处理 ??
三、创建Web Service Code
??? 1)通过File—>New—>Other—>Web Services—>Web Service wizard创建JAVA CODE
????
???? 2)选择通过JAVA CLASS创建Web Service
????
???? 3)创建HelloWebService.java,通过New创建com.service package,向导将为工程自动创建对应的接口类与实现类
????
???? 创建成功后查看WebServices/services.xml,发现配置文件多了以下内容:
????
??? 4)修改HelloWebServiceImpl.java
??? package com.service;
??? //Generated by meteorWJ
?? public class HelloWebServiceImpl implements IHelloWebService {
???
???? public String example(String message) {
??? ??? return getAuthor()+","+message;
?? ? }
?? ? private String getAuthor(){
??? ??? return "meteorWJ";
?? ? }
???
?? }
?
四、部署并测试WebSericeServer
??? 1)部署WebServiceServer
???
??? 在部署向导中选择项目、服务器
???
??? 2)启动服务器
???
?? 3)测试WebService
?? MyEclipse提供了一个Web Service Explorer来测试Web Service
??
?? 选择列表中的Launch SOAP Web Services Explorer
?? 4)选择WSDL模式
??
?? 5)在Explorer中选择WSDL Main,在右边的URL中输入
?? http://localhost:9090/WebServiceServer/services/HelloWebService?WSDL,单击"Go"
?? 其中9090是服务器端口号,services在之前的web.xml中指定
?? 若在Status中显示成功打开WSDL文件则测试成功
? ? ?
五、创建WebService客户端
经过以上几步,我们已经成功发布了一个WebService,现在需要创建一个客户端来调用该服务
? 1)创建Java Project:WebServiceClient
? 2)引入MyEclipse Libraries
?????? 右键WebServiceClient—>Build Path—>Add Libraries
?
? 选择XFire 1.2 HTTP Client Libraries
?
?? 3)创建HelloWebService.java
?? 在src目录下创建com.client.HelloWebService.java
?? package com.client;
?? import java.net.URL;
?? import org.codehaus.xfire.client.Client;
?? public class HelloWebService {
?????? public static void main(String[] args) throws Exception
?????? {
??? ??? Client client = new Client(new URL("http://localhost:9090/WebServiceServer/services/HelloWebService?wsdl"));
??? ??? Object[] results = client.invoke("example", new Object[] {"hello"});
??? ??? System.out.println((String) results[0]);
?????? }
?? }
?? 4)在确认服务器启动的情况下,运行HelloWebService.java
?? 右键点击Run As>Java Application,在控制台中看到如下输出
??
?
本次实例到此就算完成了。
?