懒人编码
BlogJava
首页
新随笔
联系
聚合
管理
随笔 - 15 文章 - 17 trackbacks - 0
<
2008年12月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
css(1)
java(6)
Javascript(2)
报表(1)
数据库(1)
编程教程(2)
随笔档案
2009年10月 (1)
2009年5月 (1)
2009年4月 (1)
2009年3月 (2)
2009年2月 (2)
2009年1月 (1)
2008年12月 (3)
2008年11月 (1)
2008年9月 (1)
2008年6月 (3)
相册
插图
最新随笔
1. cas单点登录配置速成
2. eclipse使用svn插件,状态图标、版本号不能显示的解决办法
3. CSS实现完美垂直居中
4. Birt报表使用连接池配置
5. Birt报表安全权限方案
6. 一个不错的js时间控件,支持双月显示,和多天选择
7. 工作流任务环节权限设计
8. linux关闭tomcat进程
9. 使用两个IP实现IIS和Tomcat或Apache共用80端口的方法(转)
10. eclipse svn插件不能正常显示的解决办法
搜索
最新评论
1. re: cas单点登录配置速成[未登录]
评论内容较长,点击标题查看
--袁启勋
2. re: cas单点登录配置速成[未登录]
评论内容较长,点击标题查看
--袁启勋
3. re: eclipse使用svn插件,状态图标、版本号不能显示的解决办法 [未登录]
多谢!
--sun
4. re: cas单点登录配置速成
@Tom
谢谢
--流腥鱼
5. re: cas单点登录配置速成[未登录]
写的不错。。。。
--Tom
阅读排行榜
1. cas单点登录配置速成(2581)
2. js瘦身有道--选好合适的减肥药(1390)
3. 用axis生成客户端接口提高工作效率(1382)
4. Birt报表使用连接池配置(1346)
5. 工作流任务环节权限设计(1183)
评论排行榜
1. cas单点登录配置速成(4)
2. js瘦身有道--选好合适的减肥药(4)
3. eclipse使用svn插件,状态图标、版本号不能显示的解决办法 (2)
4. Birt报表使用连接池配置(2)
5. Birt报表安全权限方案(2)
用axis生成客户端接口提高工作效率
Axis框架来自 Apache 开放源代码组织,它是基于JAVA语言的最新的 SOAP 规范(SOAP 1.2)和 SOAP with Attachments 规范(来自 Apache Group )的开放源代码实现。下面是它的核心引擎的体系结构图:
下面以
http://www.webxml.com.cn/webservices/DomesticAirline.asmx?Wsdl
航班查询服务为例来分析开发客户端的步骤。
1.首先从
http://ws.apache.org/axis/index.html
上下载axis的程序包。
2.运行cmd,进入下载包解压后的目录,运行 Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -p client
http://www.webxml.com.cn/webservices/DomesticAirline.asmx?Wsdl
(其中-p是生成代码的包名,根据需要设置)
然后把生成的代码拷贝到项目里面。
3.拷贝axis里面的包到工程里面。
4.客户端代码。
public
List
<
TicketInfo
>
getDomesticAirlinesTime(String startCity, String lastCity, String theDate)
throws
RemoteException, ServiceException
{
DomesticAirline service
=
new
DomesticAirlineLocator();
GetDomesticAirlinesTimeResponseGetDomesticAirlinesTimeResult airlines;
airlines
=
service.getDomesticAirlineSoap12().getDomesticAirlinesTime(startCity, lastCity,theDate,
null
);
MessageElement[] FOCElement
=
airlines.get_any();
List FOCElementHead
=
FOCElement[
0
].getChildren();
//
消息头,DataSet对象
List FOCElementBody
=
FOCElement[
1
].getChildren();
//
消息体信息,DataSet对象
String nn
=
FOCElementBody.get(
0
).toString();
//
消息体的字符串形式
SAXReader reader
=
new
SAXReader();
Document document
=
null
;
try
{
document
=
document
=
DocumentHelper.parseText(nn);
}
catch
(Exception e)
{
//
TODO Auto-generated catch block
System.out.println(e.toString());
}
Element root
=
(Element)document.getRootElement();
//
得到根元素
List
<
TicketInfo
>
ticketInfoList
=
new
ArrayList
<
TicketInfo
>
();
for
(Object e : root.elements())
{
TicketInfo ticketInfo
=
new
TicketInfo();
Element element
=
(Element) e;
ticketInfo.setAirlineCompany(element.elementText(
"
Company
"
));
ticketInfo.setFlightNumber(element.elementText(
"
AirlineCode
"
));
ticketInfo.setStartAirport(element.elementText(
"
StartDrome
"
));
ticketInfo.setEndAirport(element.elementText(
"
ArriveDrome
"
));
ticketInfo.setAirCraftType(element.elementText(
"
Mode
"
));
SimpleDateFormat myFmt
=
new
SimpleDateFormat(
"
HH:mm
"
);
try
{
ticketInfo.setStartTime(myFmt.parse(element.elementText(
"
StartTime
"
)));
ticketInfo.setEndTime(myFmt.parse(element.elementText(
"
ArriveTime
"
)));
}
catch
(ParseException e1)
{
//
TODO Auto-generated catch block
e1.printStackTrace();
}
ticketInfoList.add(ticketInfo);
}
return
ticketInfoList;
}
}
本来客户端代码应该是比较简单的,但是这个例子的webservice服务端是用.net写的,查询后返回DataSet类型,java没有对应的类型,所以只能把返回后的结果用xml来解析,然后在放入java的数据对象里面。
posted on 2008-12-04 10:04
流腥鱼
阅读(1382)
评论(0)
编辑
收藏
所属分类:
编程教程
、
java
新用户注册
刷新评论列表
IT新闻:
·
微软:Windows Phone 7包含应用许可机制
·
Web 设计与开发终极资源大全(上)
·
传淘宝低调试水网络游戏 淘花源已完成内测
·
传亚马逊威胁出版商签3年电子书排他协议
·
金蝶参与国际标准制订 创造无边界信息流
专题:
Android
iPad
jQuery
Chrome OS
博客园首页
IT新闻
知识库
学英语
Java程序员招聘
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
推荐职位:
·
飞信服务器端高级.NET开发工程师(新媒传信)
·
.NET飞信官网开发工程师(新媒传信)
·
.NET技术开发总监(广州衣酷)
·
ASP.NET资深工程师 (盛大网络)
·
.NET初级程序员 (北京安人)
·
.NET中级程序员 (北京安人)
·
中高级.NET工程师(沪江网)
·
前端开发工程师(沪江网)
博客园首页随笔:
·
PB调用WebService
·
Windows7下的CVSNT安装配置,用户分配
·
MS SQL 技巧系列(二)SQL查询的性能大PK之:or vs. union
·
极限挑战—100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
·
迷茫的程序员生涯!高手们能解救下么?
知识库:
·
Web 设计与开发终极资源大全(上)
·
如何做你一直梦寐以求的事情?
·
图解iPhone开发入门教程
·
简单才好
·
Visual Studio 2010 RC 几个很酷的新功能
网站导航:
博客园
IT新闻
个人主页
博客生活
IT博客网
C++博客
博客园社区
管理
相关文章:
用axis生成客户端接口提高工作效率
FreeMarker指南