知识大全 JAVA处理含有DataSet的web services

Posted 文件

篇首语:别裁伪体亲风雅,转益多师是汝师。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JAVA处理含有DataSet的web services相关的知识,希望对你有一定的参考价值。

JAVA处理含有DataSet的web services  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本篇文章将讲述如何通过axis取发布的Web services 并处理返回含有DataSet的处理结果 展现在页面上

  涉及到的知识有

  AXIS

  SAXBuilder

  xml

  步骤如下

   ) 生成client stub文件

  必备条件axis开源包 JDK

  A) 比如AXIS包放在你的C盘 则需要在环境变量当中设定的东东有

  AXIS_HOME=C:\\AXIS

  AXIS_CLASSPATH= ;%AXIS_HOME%\\lib\\axis jar;%AXIS_HOME%\\lib\\axis ant jar;%AXIS_HOME%\\lib\\mons discovery jar;%AXIS_HOME%\\lib\\mons logging jar;%AXIS_HOME%\\lib\\jaxrpc jar;%AXIS_HOME%\\lib\\saaj jar;%AXIS_HOME%\\lib\\wsdl j jar;%AXIS_HOME%\\lib\\log j jar;%AXIS_HOME%\\lib\\activation jar;%AXIS_HOME%\\lib\\mail jar

  然后加入到PATH当中 ;% AXIS_CLASSPATH%   (加入就可以了)

  注意 很多人因为以上的配置不对 导致对AXIS学习的信心下降 其实 仔细一点就会发现在CLASSPATH当中找一找有没有版本区别 也就是每一个JAR包是不是真的存在就可以了 (哈哈 我曾为之付出了两天的时间娞!)

  B) 进入DOS模式 转到D盘 执行如下代码

  java apache axis wsdl WSDL Java p <名称 最好是包名> 看到了吧 发布为asmx的文件后面加入?wsdl就可以解决了

  然后就会在这个<名称 最好是包名>下就会有一堆的JAVA文件 一般的话会有

  xxxx java

  xxxxLocator java

  xxxxSoap java

  xxxxSoapStub java

  其次还有以下划线_xxxx???? java的文件都是序列化的对象 也就是返回的结果对应元素 可以暂时不理它 下面就以作者生成的示例做一个引用webservice的操作 作者得到的文件如下:

  SearchFlightInfo java

  SearchFlightInfoLocator java

  SearchFlightInfoSoap java

  SearchFlightInfoSoapStub java

  

  _GetFlightInfoResponse_GetFlightInfoResult java

  _GetstrFlightInfo java

  _GetstrFlightInfoResponse java

  C) 引用方法

  基本思想是从得到web services后取得他的主体信息(返回的数据信息) 然后生成XML文件 然后再把XML文件转换成一个JAVA序列化对象就可以了

  如下是序列化对象的代码

  java 代码

  try

  /**

  * 取得前台的参数 航班日期 航班号

  */

  String planDate = request getParameter( day );

  String flyNo = request getParameter( hanbanno );

  /**

  * 按照最新版本制作 最新位置在

  */

  SearchFlightInfo service = new SearchFlightInfoLocator();

  SearchFlightInfoSoap client = service getSearchFlightInfoSoap();

  _GetFlightInfoResponse_GetFlightInfoResult FOCInfo=client getFlightInfo(planDate flyNo);

  String ErrorInfo = client getstrFlightInfo(planDate flyNo);//错误警告信息

  MessageElement[] FOCElement = FOCInfo get_any();//取得xml信息

  List FOCElementHead = FOCElement[ ] getChildren();//消息头 DataSet对象

  List FOCElementBody = FOCElement[ ] getChildren();//消息体信息 DataSet对象

  if (FOCElementBody size() <= )

  //无返回记录 则无输出

  return mapping findForward( NoRecord );

  

  String nn = FOCElementBody get( ) toString();//消息体的字符串形式

  String path = request getRealPath( );

  CommonTools saveXMLString(nn path+ \\\\FOC\\\\heweiya xml );//保存为XML形式 其中FOC目录做为固定目录

  /**

  * 使用DOM J来解析这个序列化的对象

  */

  //String path = request getRealPath( );

  Vector OutFoc = CommonTools LoadXML(path + \\\\FOC\\\\heweiya xml );

  request setAttribute( OutFoc OutFoc);

  if (request getParameter( as ) != null)

  return mapping findForward( Foc );

  

  return mapping findForward( Foc );

   catch (Exception e)

  /**

  * 服务有异常 或者服务没有启动!

  */

  request setAttribute( UserMsg Public FocError );

  return mapping findForward( Fail );

  

  如下是解析XML文件变换成一个序列化的对象的JAVA代码 (其中Vecto就相关于安全的LIST了)

  /**

  * 读取XML文件所有信息

  */

  public static Vector LoadXML(String path) throws Exception

  Vector xmlVector = null;

  FileInputStream fi = null;

  try

  fi = new FileInputStream(path);

  xmlVector = new Vector();

  SAXBuilder sb = new SAXBuilder();

  Document doc = sb build(fi);

  Element root = doc getRootElement(); // 得到根元素

  List focs = root getChildren(); // 得到根元素所有子元素的集合

  Element foc = null;

  FocBean xml = null;

  /**

  * 从 开始 因为 为错误警告信息

  */

  for (int i = ; i < focs size(); i++)

  xml = new FocBean();

  foc = (Element) focs get(i); // 得到第一本书元素

  /*               xml setAta(foc getChild( ATA ) getText());

  xml setAtd(foc getChild( ATD ) getText());

  xml setEta(foc getChild( ETA ) getText());

  xml setEtd(foc getChild( ETD ) getText());

  xml setFltid(foc getChild( FLTID ) getText());

  xml setSta(foc getChild( STA ) getText());

  xml setStd(foc getChild( STD ) getText());

  xml setTdwn(foc getChild( TDWN ) getText());

  xml setToff(foc getChild( TOFF ) getText());*/

  /**

  * 如下是最新版本的取得实体对象的方法

  * modify by heweiya

  */

  xml setAta(foc getChild( ATA ) getText());

  xml setAtd(foc getChild( ATD ) getText());

  xml setEta(foc getChild( ETA ) getText());

  xml setEtd(foc getChild( ETD ) getText());

  xml setFltid(foc getChild( FLTID ) getText());

  xml setSta(foc getChild( STA ) getText());

  xml setStd(foc getChild( STD ) getText());

  xml setTdwn(foc getChild( TDWN ) getText());

  xml setToff(foc getChild( TOFF ) getText());

  xml setAcown(foc getChild( ACOWN ) getText());

  xml setActyp(foc getChild( ACTYP ) getText());

  xml setArrstn(foc getChild( ARRSTN ) getText());

  xml setDatop(foc getChild( DATOP ) getText());

  xml setDepstn(foc getChild( DEPSTN ) getText());

  xml setPlnid(foc getChild( Plnid ) getText());

  xmlVector add(xml);

  

   catch (Exception e)

  System err println(e + error );

   finally

  try

  fi close();

   catch (Exception e)

  e printStackTrace();

  

  

  return xmlVector;

  

  还有一个代码如下

  java 代码

  // 把String 保存为文件

  public static void saveXMLString(String XMLString String fileName)

  throws IOException

  File file = new File(fileName);

  if (file exists())

  file delete();

  

  file createNewFile();

  if (file canWrite())

  FileWriter fileOut = new FileWriter(file);

  fileOut write(XMLString);

  fileOut close();

  

cha138/Article/program/Java/hx/201311/26845

相关参考

知识大全 Java实现简单web服务器

Java实现简单web服务器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  该程序简单实现web

知识大全 java与其他web开发编程语言的比较

  现在的软件开发语言太多了尤其现在的所有软件都基本是B/S结构的所以对WEB开发语言的使用也就越来越多搞了几年的JAVA开发 这段时间也抽了点时间玩玩dotnetperlphp等其它WEB

知识大全 如何用Java实现Web服务器

如何用Java实现Web服务器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一HTTP协议的作

知识大全 常用的Java Web框架简介

常用的JavaWeb框架简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Web框架是人们在使

知识大全 使用Java实现Comet风格的Web应用(一)

使用Java实现Comet风格的Web应用(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 使用Java实现Comet风格的Web应用(二)

使用Java实现Comet风格的Web应用(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 将eclipse创建的java转化为web项目

  FinishedNowyourjavaprojecthasbeenconvertedintoawebprojectcha138/Article/program/Java/ky/20131

知识大全 JAVA实现支持视频点播WEB服务器

JAVA实现支持视频点播WEB服务器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一项目简介 

知识大全 Java web start入门

Javawebstart入门  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下面是用最简单的He

知识大全 Java和PHP在Web开发方面的比较

Java和PHP在Web开发方面的比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  比较PHP