BaoYaEr
使用Axis開發Web Service程序
1、新建一個Web工程,工程名為“AxisTest”:
2、新建“lib”文件夾,然后把主要JAR包:axis.jar,commons-discovery-0.2.jar,commons-logging-1.0.4.jar,jaxrpc.jar,wsdl4j-1.5.1.jar,saaj.jar;可選包(發布服務及生成客戶端程序是要用到的):activation.jar;mail.jar都拷貝到此“lib”文件夾下,并把主要的JAR包添加到工程的classpath中;
3、配置“web.xml”:
<?
xml version="1.0" encoding="UTF-8"
?>
<
web-app
version
="2.4"
xmlns
="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
<
display-name
>
Apache-Axis
</
display-name
>
<
listener
>
<
listener-class
>
org.apache.axis.transport.http.AxisHTTPSessionListener
</
listener-class
>
</
listener
>
<
servlet
>
<
servlet-name
>
AxisServlet
</
servlet-name
>
<
servlet-class
>
org.apache.axis.transport.http.AxisServlet
</
servlet-class
>
</
servlet
>
<
servlet
>
<
servlet-name
>
AdminServlet
</
servlet-name
>
<
servlet-class
>
org.apache.axis.transport.http.AdminServlet
</
servlet-class
>
<
load-on-startup
>
100
</
load-on-startup
>
</
servlet
>
<
servlet
>
<
servlet-name
>
SOAPMonitorService
</
servlet-name
>
<
servlet-class
>
org.apache.axis.monitor.SOAPMonitorService
</
servlet-class
>
<
init-param
>
<
param-name
>
SOAPMonitorPort
</
param-name
>
<
param-value
>
5001
</
param-value
>
</
init-param
>
<
load-on-startup
>
100
</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>
AxisServlet
</
servlet-name
>
<
url-pattern
>
/servlet/AxisServlet
</
url-pattern
>
</
servlet-mapping
>
<
servlet-mapping
>
<
servlet-name
>
AxisServlet
</
servlet-name
>
<
url-pattern
>
*.jws
</
url-pattern
>
</
servlet-mapping
>
<
servlet-mapping
>
<
servlet-name
>
AxisServlet
</
servlet-name
>
<
url-pattern
>
/services/*
</
url-pattern
>
</
servlet-mapping
>
<
servlet-mapping
>
<
servlet-name
>
SOAPMonitorService
</
servlet-name
>
<
url-pattern
>
/SOAPMonitor
</
url-pattern
>
</
servlet-mapping
>
<!--
uncomment this if you want the admin servlet
-->
<!--
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
-->
<
session-config
>
<
session-timeout
>
20
</
session-timeout
>
</
session-config
>
<!--
currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response
-->
<
mime-mapping
>
<
extension
>
wsdl
</
extension
>
<
mime-type
>
text/xml
</
mime-type
>
</
mime-mapping
>
<
mime-mapping
>
<
extension
>
xsd
</
extension
>
<
mime-type
>
text/xml
</
mime-type
>
</
mime-mapping
>
<
welcome-file-list
id
="WelcomeFileList"
>
<
welcome-file
>
index.jsp
</
welcome-file
>
<
welcome-file
>
index.html
</
welcome-file
>
<
welcome-file
>
index.jws
</
welcome-file
>
</
welcome-file-list
>
</
web-app
>
可參照“axis-1_4\webapps\axis\WEB-INF\web.xml”進行配置;
4、編寫服務端程序server,SayHello.java,編譯server.SayHello.java
package
server;
public
class
SayHello
{
public
String getName(String name)
{
return
"
hello
"
+
name;
}
}
5、編寫wsdd文件
deploy.wsdd文件內容如下:
<
deployment
xmlns
="http://xml.apache.org/axis/wsdd/"
xmlns:java
="http://xml.apache.org/axis/wsdd/providers/java"
>
<
service
name
="SayHello"
provider
="java:RPC"
>
<
parameter
name
="className"
value
="server.SayHello.getName"
/>
<
parameter
name
="allowedMethods"
value
="*"
/>
<
parameter
name
="scope"
value
="session"
/>
<!--
request, session, or application
-->
</
service
>
</
deployment
>
6、把工程發布到Tomcat并啟動Tomcat;
7、發布服務
編輯一個deploy.bat,Axis_Lib為axis.jar路徑。內容如下:
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8080/AxisTest/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
執行這個批處理文件,這時候,如果提示成功的話,訪問http://localhost:8080/AxisTest/servlet/AxisServlet或http://localhost:8080/AxisTest/services就會顯示服務列表。
8、生成客戶端client stub文件
在瀏覽器上訪問服務器端的服務,可以下載到WSDL文件,通過Axis的相關工具,可以自動從WSDL文件中生成Web Service的客戶端代碼。
編寫一個WSDL2Java.bat文件,其內容如下:
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\src
set Package=server.com
set wsdl_path=http://localhost:8080/AxisTest/services/ SayHello?wsdl
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% %wsdl_path%
執行這個批處理文件就可以生成client stub.
生成的stub client文件列表為:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .
9、編寫客戶端程序,編譯并執行
1)、Stubs方式
下面是一段junit測試客戶端代碼。
import
java.net.URL;
import
junit.framework.Test;
import
junit.framework.TestCase;
import
junit.framework.TestSuite;
public
class
TestWSClient
extends
TestCase
{
public
TestWSClient(String string)
{
super
(string);
}
public
void
SayHelloClient()
throws
Exception
{
SayHelloService service
=
new
SayHelloServiceLocator();
SayHello_PortType client
=
service.getSayHello() ;
String retValue
=
client.getName(
"
clientname
"
);
System.out.println(retValue);
}
public
static
Test suite()
{
TestSuite suite
=
new
TestSuite();
suite.addTest(
new
TestWSClient(
"
SayHelloClient
"
));
return
suite;
}
}
2)、動態調用方式:
try
{
//
Options options = new Options(args);
String endpointURL
=
"
http://localhost:8080/AxisTest/services/SayHello
"
;
Service service
=
new
Service();
Call call
=
(Call) service.createCall();
call.setTargetEndpointAddress(
new
java.net.URL(endpointURL) );
call.setOperationName(
new
QName(
"
SayHello
"
,
"
getName
"
) );
String res
=
(String) call.invoke(
new
Object[]
{
"
Jack
"
}
);
System.out.println( res );
}
catch
(Exception e)
{
System.err.println(e.toString());
}
發表于 2007-10-15 09:31
大田斗
閱讀(550)
評論(0)
編輯
收藏
所屬分類:
開源opensource
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
mule事件驅動服務
XPath語法
mule示例分析
在xml的汪洋中遨游之mule篇
EqualsBuilder和HashCodeBuilder
webservice cfx學習
JTA事務初級研究
JAVA 對象池
mina中文教程
spring+atomikos+JTA完整例子
<
2025年7月
>
日
一
二
三
四
五
六
29
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
導航
BlogJava
首頁
發新隨筆
發新文章
聯系
聚合
管理
統計
隨筆: 32
文章: 427
評論: 144
引用: 0
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2008年12月 (1)
2008年4月 (2)
2008年2月 (1)
2008年1月 (1)
2007年12月 (3)
2007年11月 (1)
2007年10月 (3)
2007年7月 (2)
2007年6月 (1)
2007年4月 (2)
2007年3月 (3)
2007年2月 (5)
2007年1月 (3)
2006年12月 (4)
文章分類
axis(6)
(rss)
eclipse(7)
(rss)
Hibernate(30)
(rss)
html/js/css(107)
(rss)
java(106)
(rss)
linux(7)
(rss)
Lucene(7)
(rss)
spring(36)
(rss)
Spring CLOUd(1)
(rss)
Strtus(30)
(rss)
其它(48)
(rss)
開源opensource(48)
(rss)
數據庫DateBase(30)
(rss)
設計模式(12)
(rss)
文章檔案
2018年8月 (1)
2012年5月 (1)
2012年4月 (2)
2011年7月 (6)
2010年3月 (1)
2010年2月 (1)
2010年1月 (3)
2009年12月 (1)
2009年10月 (1)
2009年8月 (3)
2009年3月 (1)
2009年2月 (1)
2008年12月 (3)
2008年11月 (10)
2008年10月 (3)
2008年9月 (2)
2008年8月 (2)
2008年7月 (4)
2008年6月 (13)
2008年5月 (15)
2008年4月 (9)
2008年3月 (10)
2008年1月 (18)
2007年12月 (33)
2007年11月 (6)
2007年10月 (18)
2007年9月 (10)
2007年8月 (18)
2007年7月 (15)
2007年6月 (25)
2007年5月 (19)
2007年4月 (26)
2007年3月 (38)
2007年2月 (33)
2007年1月 (27)
2006年12月 (27)
2006年11月 (12)
java
Ajax特效網站
cndiy nio
GRO
Hani Suleiman's blog
Java之路
java論壇
J道
mule
mule 入門
oksonic(動畫教程)
一路由你
中國eclipse
八進制
在線源碼
多線程實戰
天火
小米的blogjava
幻境伯克----jface/swt
很全的博克-強
每日一得
滿江紅
邢紅瑞
飛翔
鳥詩選(js)
鳥食軒 (dhtml)
工具
apache中文手冊
extjs學習
iconFindre
java 安全
javaresearch
java技巧網
js之王
matrix(study)
prototype api
spring中文
北京IT企業速查
在線流程圖工具
雅虎翻譯
朋友
Happyshow
hibernate異常
skywalker
sunshow
xf
亞光
同云博客
小弟鵬
張玉磊
昕
李陽
黃鳴
搜索
積分與排名
積分 - 1104425
排名 - 28
最新評論
1.?re: hibernate.cfg.xml配置
好全啊 .. 棒棒噠 ~ !
--junqinag.yang
2.?re: Quartz任務調度快速入門
我現在來看還是覺得不錯
--小任
3.?re: js中this的總結
評論內容較長,點擊標題查看
--pam
4.?re: Quartz任務調度快速入門
樓主辛苦
--yd
5.?re: Quartz任務調度快速入門
頂了,內容寫的很好
--sen
閱讀排行榜
1.?網頁不緩存(3563)
2.?Form嵌套引起的問題 (2867)
3.?解決IE下CSS背景圖片閃爍的Bug(2458)
4.?Spring AOP的動態載入原理(2416)
5.?如何制作漂亮的Excel表格(2057)
評論排行榜
1.?北京戶口--吃官司(5)
2.?開始→運行→輸入的命令集錦(3)
3.?讓網頁上的所有圖片動起來(2)
4.?Dom4j 編碼問題徹底解決 (1)
5.?心情不爽(1)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 大田斗
主站蜘蛛池模板:
久久久WWW免费人成精品
|
国产一级淫片a免费播放口
|
久久精品中文字幕免费
|
色噜噜亚洲精品中文字幕
|
亚洲毛片在线观看
|
黄色片免费在线观看
|
久久国产成人精品国产成人亚洲
|
久久综合图区亚洲综合图区
|
一区二区三区视频免费观看
|
亚洲人成免费电影
|
亚洲精品视频免费看
|
老子影院午夜伦不卡亚洲
|
久久精品无码专区免费
|
亚洲五月综合缴情在线观看
|
精品国产福利尤物免费
|
亚洲国产精品无码一线岛国
|
黄色a级免费网站
|
国产成人精品久久亚洲
|
两个人日本WWW免费版
|
亚洲av色福利天堂
|
免费福利网站在线观看
|
亚洲日韩精品一区二区三区
|
波多野结衣免费在线观看
|
亚洲一日韩欧美中文字幕在线
|
日本无吗免费一二区
|
特级aaaaaaaaa毛片免费视频
|
中文字幕第13亚洲另类
|
久久99精品国产免费观看
|
亚洲情侣偷拍精品
|
亚洲字幕AV一区二区三区四区
|
青青草国产免费久久久下载
|
水蜜桃亚洲一二三四在线
|
日本zzzzwww大片免费
|
337P日本欧洲亚洲大胆艺术图
|
亚洲精品一级无码鲁丝片
|
无码国产精品一区二区免费式芒果
|
亚洲人色大成年网站在线观看
|
国产美女精品视频免费观看
|
毛片在线播放免费观看
|
亚洲色图古典武侠
|
国产免费观看黄AV片
|