东方未名
posts - 32, comments - 153, trackbacks - 0, articles - 0
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
Web Service学习日记-11月29日-建立客户端访问Web Service
Posted on 2006-11-29 22:15
Zou Ang
阅读(807)
评论(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
);
}
}
评论
#
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 ,应该如何?
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
【转】当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中
目前正在读的书
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(15)
给我留言
查看公开留言
查看私人留言
我参与的团队
中大沙发(0/0)
随笔分类
(16)
(7)
(7)
随笔档案
2011年4月 (1)
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. Tips for Oracle BPM 11gR2
2. [转]java面试笔试题整理
3. 使用Hessian开发C/S模式的小系统
4. Which Programming Lanuguage Are You?
5. MBTI职业性格测试
6. 遗传算法示例程序
7. 使用遗传算法求解函数 xyz*sin(xyz)的最大值
8. 利用JNI调用C/C++方法实现从控制台输入密码
9. [转]JDK1.6.0新特性详解与代码示例
10. ContextLoaderListener 出错解决办法
积分与排名
积分 - 62871
排名 - 836
最新评论
1. re: 使用遗传算法求解函数 xyz*sin(xyz)的最大值[未登录]
请问你改好的那个实现了么,同求@lavender314
--fanfan
2. re: 使用Hessian开发C/S模式的小系统
太谢谢啦,终于明白了 加载spring的顺序哦
--孟
3. re: 遗传算法示例程序
正在学习遗传算法,源码可以发到邮箱吗,谢谢! 邮址;haishan1010@gmail.com
--海山
4. re: 遗传算法示例程序
LZ很强大。。
--JokerOrSlayer
5. re: 遗传算法示例程序
正在做一个基于遗传算法的优化系统毕业设计,能否请博主好心,将代码发到bookkoob@126.com 邮箱中 让我学习一下,谢谢博主!!!!
--曹子健
阅读排行榜
1. 使用遗传算法求解函数 xyz*sin(xyz)的最大值(7023)
2. 遗传算法示例程序(6204)
3. 使用AOP实现类型安全的泛型DAO(5430)
4. 又谈乱码问题解决(4360)
5. Javascript噩梦-Ajax实现输入提示的调整与配置(3918)
评论排行榜
1. 遗传算法示例程序(75)
2. 使用遗传算法求解函数 xyz*sin(xyz)的最大值(14)
3. [转帖]struts,ajax乱码解决方案 (11)
4. 使用AOP实现类型安全的泛型DAO(8)
5. Javascript噩梦-Ajax实现输入提示的调整与配置(7)