东方未名
posts - 31, comments - 101, trackbacks - 0, articles - 0
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
Web Service学习日记-11月29日-建立客户端访问Web Service
Posted on 2006-11-29 22:15
Zou Ang
阅读(411)
评论(4)
编辑
收藏
所属分类:
昨天把Web服务架好了,那今天自然要想怎么来远程调用了.
于是写了如下代码:
/** */
/**
* org.zsu.zouang
* 2006-11-29
*/
package
org.zsu.zouang;
import
java.net.MalformedURLException;
import
java.net.URL;
import
java.rmi.RemoteException;
import
javax.xml.namespace.QName;
import
javax.xml.rpc.ServiceException;
import
org.apache.axis.client.Call;
import
org.apache.axis.client.Service;
/** */
/**
* 2006-11-29
*
@author
Zou Ang
* Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
*/
public
class
MyBookServiceClient
{
private
static
final
String endPoint
=
"
http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws?wsdl
"
;
public
static
void
main(String args[])
{
Service service
=
new
Service();
try
{
Call call
=
(Call)service.createCall();
call.setTargetEndpointAddress(
new
URL(endPoint));
call.setOperationName(
new
QName(
"
getBookTitle
"
));
String result
=
(String)call.invoke(
new
Object[]
{
"
0130895601
"
}
);
System.out.println(result);
}
catch
(ServiceException e)
{
//
TODO Auto-generated catch block
e.printStackTrace();
}
catch
(MalformedURLException e)
{
//
TODO Auto-generated catch block
e.printStackTrace();
}
catch
(RemoteException e)
{
e.printStackTrace();
}
}
}
控制台输出:
-
Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
Advanced Java
2
Platform How to Program
成功啦!
在代码中加上这一句:
System.out.println(call.getResponseMessage().getSOAPPartAsString());
会看到控制台输出:
<?
xml version="1.0" encoding="utf-8"
?>
<
soapenv:Envelope
xmlns:soapenv
="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd
="http://www.w3.org/2001/XMLSchema"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
>
<
soapenv:Body
>
<
getBookTitleResponse
soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/"
>
<
getBookTitleReturn
xsi:type
="xsd:string"
>
Advanced Java 2 Platform How to Program
</
getBookTitleReturn
>
</
getBookTitleResponse
>
</
soapenv:Body
>
</
soapenv:Envelope
>
改进了一下,使用Swing建立一个图形化界面:
/** */
/**
* 2006-11-29
*
@author
Zou Ang
* Contact <a href ="mailto:richardeee@gmail.com">Zou Ang</a>
*/
public
class
MyBookClient
extends
JFrame
{
private
final
static
int
FRAME_WIDTH
=
500
;
private
final
static
int
FRAME_HEIGHT
=
100
;
public
MyBookClient(String title)
{
super
(title);
getContentPane().setLayout(
new
GridLayout(
2
,
2
));
final
String endPoint
=
"
http://localhost:8080/axis/org/zsu/zouang/BookTitleService.jws?wsdl
"
;
final
JLabel resultLabel
=
new
JLabel();
final
JComboBox bookISDNBox
=
new
JComboBox();
bookISDNBox.addItem(
"
0130895601
"
);
bookISDNBox.addItem(
"
0430895717
"
);
bookISDNBox.addItem(
"
0430293636
"
);
bookISDNBox.addItem(
"
0130923613
"
);
this
.setSize(FRAME_WIDTH, FRAME_HEIGHT);
JButton serviceButton
=
new
JButton(
"
Get Book Title
"
);
serviceButton.addActionListener(
new
ActionListener()
{
public
void
actionPerformed(ActionEvent e)
{
//
TODO Auto-generated method stub
try
{
Service service
=
new
Service();
Call call
=
(Call)service.createCall();
call.setTargetEndpointAddress(
new
URL(endPoint));
call.setOperationName(
new
QName(
"
getBookTitle
"
));
String result
=
(String)call.invoke(bookISDNBox.getSelectedObjects());
resultLabel.setText(result);
}
catch
(AxisFault e1)
{
//
TODO Auto-generated catch block
e1.printStackTrace();
}
catch
(MalformedURLException e1)
{
//
TODO Auto-generated catch block
e1.printStackTrace();
}
catch
(RemoteException e1)
{
//
TODO Auto-generated catch block
e1.printStackTrace();
}
catch
(ServiceException e1)
{
//
TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
);
getContentPane().add(
new
JLabel(
"
Please ISDN number
"
));
getContentPane().add(bookISDNBox);
getContentPane().add(resultLabel);
getContentPane().add(serviceButton);
}
public
static
void
main(String args[])
{
MyBookClient client
=
new
MyBookClient(
"
Book Title Service
"
);
client.setDefaultCloseOperation(EXIT_ON_CLOSE);
client.setVisible(
true
);
}
}
Feedback
#
re: Web Service学习日记-11月29日-建立客户端访问Web Service
回复
更多评论
2006-11-29 23:21 by
zhenghx[匿名]
今天在图书馆看到你那本书,去借时管理员跟我说那本书不能借 =_=!
郁闷~~
#
re: Web Service学习日记-11月29日-建立客户端访问Web Service
回复
更多评论
2006-11-29 23:30 by
Zou Ang
什么叫那本书不能借?我都借着在看了
#
re: Web Service学习日记-11月29日-建立客户端访问Web Service
回复
更多评论
2006-11-30 23:53 by
Tauruser
哪本书?
#
re: Web Service学习日记-11月29日-建立客户端访问Web Service
回复
更多评论
2007-01-25 15:51 by
冷面阎罗
那建一个罪简单的Web Service ,应该如何?
新闻频道
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2006-11-29 22:53 编辑过
成果网帮您增加网站收入
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
相关文章:
【转】当SOA遇到Web 2.0—Java EE的不足之处
Web Service学习日记-11月30日-访问Amazon
Web Service学习日记-11月29日-建立客户端访问Web Service
Web Service学习日记-11月28日-Web Service部署
慎用Eclipse中的自动Format
[转]如何组建理想SOA团队
第一篇,DWR
Powered by:
BlogJava
Copyright © Zou Ang
日历
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
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
1
2
3
4
5
6
7
8
9
公告
努力钻研Java Web Service中
目前正在读的书
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(11)
给我留言
查看公开留言
查看私人留言
我参与的团队
中大沙发(0/0)
随笔分类
(16)
(7)
(7)
随笔档案
2007年12月 (1)
2007年7月 (1)
2007年5月 (2)
2007年4月 (2)
2007年2月 (4)
2007年1月 (1)
2006年12月 (6)
2006年11月 (14)
友情链接
Tauruser
Vince
寒雁留音
流光溢彩
最新随笔
1. [转]java面试笔试题整理
2. 使用Hessian开发C/S模式的小系统
3. Which Programming Lanuguage Are You?
4. MBTI职业性格测试
5. 遗传算法示例程序
6. 使用遗传算法求解函数 xyz*sin(xyz)的最大值
7. 利用JNI调用C/C++方法实现从控制台输入密码
8. [转]JDK1.6.0新特性详解与代码示例
9. ContextLoaderListener 出错解决办法
10. Javascript噩梦-Ajax实现输入提示的调整与配置
积分与排名
积分 - 26696
排名 - 315
最新评论
1. re: 遗传算法示例程序
你好,我是一名学生,
最近在学习遗传算法,
能不能将源码发给我呀?
谢谢!
邮箱为:xujinxin0101@163.com
--passion2001
2. re: [转帖]struts,ajax乱码解决方案
一天没搞定的内容在看了作者的文章后,立马解决,非常感谢。
--WKL
3. re: 遗传算法示例程序[未登录]
为什么我下载解压之后,在命令行输入:java -jar genetic_algorithm.jar
程序没有出来呢?
请帮帮忙啦。
--laihuahua
4. re: 遗传算法示例程序[未登录]
你做得真好!
如可以,发个源码给我哦!
Thanks!
lailaihuahua@163.com
--laihuahua
5. re: 遗传算法示例程序
大哥,能发给我一份吗?
happymian@gmail.com
--happymian
阅读排行榜
1. 使用AOP实现类型安全的泛型DAO(2877)
2. 又谈乱码问题解决(2700)
3. Javascript噩梦-Ajax实现输入提示的调整与配置(2391)
4. [转帖]struts,ajax乱码解决方案 (2099)
5. 使用遗传算法求解函数 xyz*sin(xyz)的最大值(1931)
评论排行榜
1. 遗传算法示例程序(34)
2. [转帖]struts,ajax乱码解决方案 (9)
3. 使用AOP实现类型安全的泛型DAO(8)
4. Javascript噩梦-Ajax实现输入提示的调整与配置(7)
5. 使用遗传算法求解函数 xyz*sin(xyz)的最大值(7)