知识大全 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服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 该程序简单实现web
现在的软件开发语言太多了尤其现在的所有软件都基本是B/S结构的所以对WEB开发语言的使用也就越来越多搞了几年的JAVA开发 这段时间也抽了点时间玩玩dotnetperlphp等其它WEB
如何用Java实现Web服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一HTTP协议的作
常用的JavaWeb框架简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Web框架是人们在使
使用Java实现Comet风格的Web应用(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
使用Java实现Comet风格的Web应用(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
FinishedNowyourjavaprojecthasbeenconvertedintoawebprojectcha138/Article/program/Java/ky/20131
JAVA实现支持视频点播WEB服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一项目简介
Javawebstart入门 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 下面是用最简单的He
Java和PHP在Web开发方面的比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 比较PHP