润乾报表在MyEclipse自带XFire下开发Webservice实例

润乾报表在MyEclipse自带XFire下开发Webservice实例       JAVA开发Webservice网络上比较流行的几种选择AXIS、XFire、CFX(XFire的下一代),看下润乾报表在MyEclipse自带XFire下开发Webservice实例

在开始前,先介绍一些概念: 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传输协议        XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。

一、 创建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

import com.runqian.report4.model.ReportDefine; import com.runqian.report4.usermodel.Context; import com.runqian.report4.usermodel.Engine; import com.runqian.report4.usermodel.IReport; import com.runqian.report4.util.ReportUtils; import com.runqian.report4.view.html.HtmlReport; import com.runqian.report4.model.engine.ExtCellSet; //Generated by MyEclipse

public class HelloWssImpl implements IHelloWss {    public String example(String reportid) {   //直接读入报表并运算输出,指向润乾报表目录     String htmlText=”";   try {     String reportFile = “D:/test/”+reportid+”.raq”;     String lic = “D:/test/1234.lic”;     ExtCellSet.setLicenseFileName(lic);        //设置授权           ReportDefine rd = (ReportDefine)ReportUtils.read( reportFile );

Context context = new Context(); //构建报表引擎计算环境

//定义参数

Engine engine = new Engine(rd, context); //构造报表引擎

IReport iReport = engine.calc(); //运算报表

HtmlReport hr=new HtmlReport(iReport,”report1″);

htmlText=hr.generateHtml();//输出报表为html

} catch (Exception e) {    e.printStackTrace();   }   return htmlText;        }

三、 测试WebSericeServer http://localhost:8080/WebServiceServer/services/HelloWebService?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 public class HelloWebService {   public static void main(String[] args) throws Exception      {       Client client = new Client(new URL(“http://localhost:8080/wss/services/HelloWss?wsdl”));       Object[] results = client.invoke(“example”, new Object[] {“a”});       System.out.println((String) results[0]);      }

}

4)在确认服务器启动的情况下,运行HelloWebService.java    右键点击Run As>Java Application,在控制台中看到如下输出