kapok
垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!
BlogJava
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks
<
2005年8月
>
日
一
二
三
四
五
六
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
31
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(28)
給我留言
查看公開留言
查看私人留言
隨筆分類
.NET(10)
(rss)
ALL(464)
(rss)
AppFuse(20)
(rss)
CorBa(2)
(rss)
Eclipse技巧和插件等(7)
(rss)
English(10)
(rss)
ERP(3)
(rss)
HibernateAndSpring(82)
(rss)
J2EE(290)
(rss)
J2SE(27)
(rss)
JB(2)
(rss)
JBOSS(4)
(rss)
JDO(1)
(rss)
Linux(7)
(rss)
Oracle(9)
(rss)
PetStore
(rss)
Struts(9)
(rss)
UML與RUP(13)
(rss)
Web Services(8)
(rss)
Weblogic Portal(72)
(rss)
XDoclet(6)
(rss)
個(gè)人項(xiàng)目所需資料(8)
(rss)
辦公自動(dòng)化(2)
(rss)
點(diǎn)滴(1)
(rss)
程序員生活(10)
(rss)
行業(yè)知識(shí)(15)
(rss)
軟件工程和項(xiàng)目管理(32)
(rss)
軟件測(cè)試(1)
(rss)
隨手貼(5)
(rss)
面試(4)
(rss)
隨筆檔案
2005年9月 (18)
2005年8月 (39)
2005年7月 (42)
2005年6月 (49)
2005年5月 (70)
2005年4月 (116)
2005年3月 (121)
Corba
EAI
Bea Portal相關(guān)
dnnchina
Enterprise Java Research Library
xoops
泡泡-博客
Online Document
Bea Resource Center
WebLogic Online Help_ZH
Open Source
exo portal
Groller
Mule
pow2toolkit
xpetstore
開源
Portal
huihoo JSR168
灰狐
RSS Links
.Text 0.958 安裝&問題解決方案
All about Blog and RSS
RSS links
Weblogic凈化貼
Weblogic
WL Portal FAQs
WLP FAQss
不錯(cuò)的鏈接
chenyun2000
CSDN專欄作家
Eclipse Live Forum
firebody
gigix
glchengang
IT人
JavaEye
JavaPassion
michael
ODMG
oracle_tech
Pattern在線查詢手冊(cè)
querycriteria
rosen
spring reference
上海電子地圖
兔八哥
兔子
思維導(dǎo)圖
范凱的廢紙簍
工具集合
AppFuse
數(shù)據(jù)倉庫相關(guān)
blog on dw
BRM業(yè)務(wù)參考模型
chinabi
china-bi
CNOUG DW
datawarehouse
dbazine
dmreview
DW 信息目錄
dw-institute
DWWAY
ewsolutions
flymouse
inmoncif
intelligententerprise
isomebody
IT售前論壇
rkimball
SummerRain
tdan
商業(yè)智能
頭頭腦腦
快語綜合
精進(jìn)門
搜索
最新評(píng)論
1.?re: Java中的URLEncoder和URLDecoder類
asdfsdf
--sadf
2.?re: 面試題,做出來3萬月薪[未登錄]
很強(qiáng),就是這樣的邏輯@此外
--TEST
3.?re: MKS Toolkit[未登錄]
政治
--s
4.?re: Java 遠(yuǎn)程方法調(diào)用(RMI)
if (r instanceof Meeting )
這個(gè)Meeting從哪里來?
--nx
5.?re: ClearCase指南-基礎(chǔ)篇(連載一)
clearcase 可以使用clearfsimport -recurse -nsetevent進(jìn)行批量導(dǎo)入
--china-java.net
閱讀排行榜
1.?weblogic部署方法(11455)
2.?x509數(shù)字證書介紹(11436)
3.?一個(gè)很不錯(cuò)的基于角色的權(quán)限管理系統(tǒng)設(shè)計(jì)!(10493)
4.?UML的StereoType的解釋(9066)
5.?When Runtime.exec() won't (5449)
6.?完全卸載Oracle(5411)
7.?OpenLDAP快速指南(5144)
8.?如何發(fā)布和查找 WSDL 服務(wù)描述(4498)
9.?Eclipse不能自動(dòng)編譯的問題(4287)
10.?SSL※ X509(3891)
評(píng)論排行榜
1.?面試題,做出來3萬月薪(11)
2.?x509數(shù)字證書介紹(5)
3.?OpenLDAP快速指南(5)
4.?Compiere的漢化 (5)
5.?oracle的select for update(4)
6.?使用Eclipse plus Pluto開發(fā)你的第一個(gè)與JSR168兼容的Portlet(3)
7.?迎接RFID的時(shí)代(3)
8.?簡(jiǎn)化JavaMail:小巧 Jakarta Commons-Email 簡(jiǎn)單教程(3)
9.?Visual CHM和jd2chm不錯(cuò)(2)
10.?Java 遠(yuǎn)程方法調(diào)用(RMI)(2)
AXIS開發(fā)Web Service
http://www.cjsdn.net/post/view?bid=5&id=151014&sty=1&tpg=1&age=0
這篇比較早,放在自己的blog里,順便貼過來,讓版本看看,是否可以加分。
Apache Axis開發(fā)WEB Service簡(jiǎn)要說明(1)- -
1 介紹
本文并不是想介紹Web服務(wù)的原理、系統(tǒng)架構(gòu)等,我們假設(shè)您已經(jīng)了解了關(guān)于Web服務(wù)的一些基本的概念、原理等知識(shí)。本文主要是針對(duì)那些已經(jīng)了解Web服務(wù)概念,但是還沒有親身體會(huì)Web服務(wù)所帶來令人歡欣鼓舞的特征的開發(fā)人員。在此我們認(rèn)為你已經(jīng)具備了Java、XML等基礎(chǔ)知識(shí),如果你還有其他開發(fā)環(huán)境的經(jīng)驗(yàn)例如VB、VC那是再好不過的了。
1.1 Web服務(wù)
雖然我們并不想詳細(xì)講述Web服務(wù)的體系結(jié)構(gòu),但是大概的介紹一下還是有必要的。Web服務(wù)是一種新型的Web應(yīng)用程序。不同于其他Web應(yīng)用程序,它是自適應(yīng)、自我描述、模塊化的應(yīng)用程序,并可以跨越Web進(jìn)行發(fā)布、定位以及調(diào)用。簡(jiǎn)單的Web服務(wù)可以提供例如天氣預(yù)報(bào)或者航班信息的服務(wù)。一旦部署了Web服務(wù),其他的應(yīng)用程序就可以發(fā)現(xiàn)和調(diào)用所部署的服務(wù)。
1.2 AXIS項(xiàng)目
Axis框架來自 Apache 開放源代碼組織,它是基于JAVA語言的最新的 SOAP 規(guī)范(SOAP 1.2)和 SOAP with Attachments 規(guī)范(來自 Apache Group )的開放源代碼實(shí)現(xiàn)。有很多流行的開發(fā)工具都使用AXIS作為其實(shí)現(xiàn)支持Web服務(wù)的功能,例如JBuilder以及著名的Eclipse J2EE插件Lomboz。AXIS的最新版本是1.1,可以從http://ws.apache.org/axis/index.html下載。下圖是AXIS核心引擎的體系結(jié)構(gòu)圖:
整個(gè)AXIS項(xiàng)目包括以下幾個(gè)部分:
1. 消息流子系統(tǒng)
消息流子系統(tǒng)提供了靈活的消息傳遞框架,這個(gè)消息傳遞框架包括處理程序、鏈、序列化程序和反序列化程序。處理程序是一個(gè)處理請(qǐng)求、響應(yīng)和故障流的對(duì)象。處理程序可被組合在一起成為鏈,而且可以使用一個(gè)靈活的部署描述符來配置這些處理程序的順序。
2. 傳輸框架子系統(tǒng)
提供了一個(gè)傳輸框架,這個(gè)傳輸框架可以幫助您創(chuàng)建自己的可插式傳輸發(fā)送器和傳輸偵聽器。
3. 數(shù)據(jù)編碼子系統(tǒng)
AXIS完全按照 XML Schema 規(guī)范提供各種數(shù)據(jù)類型的自動(dòng)序列化,并且提供功能擴(kuò)展接口來使用您自己定制的序列化器和反序列化器。
4. 其他
AXIS完全支持 WSDL 以及日志記錄、出錯(cuò)以及故障處理機(jī)制。它同時(shí)提供一些工具用來講WSDL文檔轉(zhuǎn)換成客戶端的調(diào)用框架以及根據(jù)類來產(chǎn)生WSDL定義文檔。
AXIS目前版本支持的標(biāo)準(zhǔn)是:W3C SOAP 1.1 和 1.2;WSDL 1.1;SAAJ 1.1(SUN公司:SOAP with Attachments API for Java);JAX-RPC(SUN公司:Java API for XML-Based RPC)1.0。
2 Axis使用
2.1 Axis運(yùn)行需要哪些jar文件
對(duì)Axis解包后,將axis-1_1/webapps/axis/WEB-INF/lib/目錄下的jar文件復(fù)制到/usr/local/apache/htdocs/WEB-INF/lib目錄下(Web應(yīng)用程序的目錄)。應(yīng)包括以下jar文件。
axis-ant.jar
axis.jar
commons-discovery.jar
commons-logging.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j.jar
2.2 Axis使用注意事項(xiàng)
2.2.1 獲取WSDL文件
Axis支持用戶通過網(wǎng)絡(luò)方式,從已發(fā)布WEB服務(wù)的機(jī)器上獲取WEB服務(wù)描述文件WSDL。用戶只需簡(jiǎn)單在IE地址欄輸入如下格式訪問鏈接即可:
http://webappIp[/webapp]/services/WebServiceName?wsdl
其中:
webAppIp:運(yùn)行WEB服務(wù)機(jī)器的地址。
[/webapp]:運(yùn)行Axis WEB服務(wù)的Web應(yīng)用名;如果應(yīng)用使用跟目錄,則不需要
services/WebServiceName:WEB服務(wù)定位路徑,類似Servlet路徑;其中WebServiceName為定義的Web服務(wù)接口名稱。
用戶將訪問獲的文件直接保存,即可獲取對(duì)應(yīng)WEB服務(wù)的WSDL描述文件。
2.2.2 參數(shù)類型定義(輸入、輸出參數(shù))
如果用戶希望使用函數(shù)定義中的輸出參數(shù)獲取響應(yīng)結(jié)果時(shí),自動(dòng)生成的WSDL文件無法滿足,必須手動(dòng)對(duì)自動(dòng)生成的WSDL文件進(jìn)行修改。
如定義java Interface接口如下:
int queryUser(long type,User[] users) ;
則使用java2WSDL生成的WSDL如下:
為了將User[]作為輸出參數(shù),必須修改自動(dòng)生成的WSDL文件,在QueryUserResponse返回消息中,添加User[]參數(shù)定義,告知Axis在WSDL2java處理中,將User[]作為輸入/輸出參數(shù)處理。
2.2.3 server-config.wsdd
Axis會(huì)在WEB應(yīng)用程序的WEB-INF/目錄下自動(dòng)生成一個(gè)名字為server-config.wsdd的xml文件,其中記錄了已部署的WEB服務(wù)。每部署一個(gè)新的WEB服務(wù)時(shí),Axis都會(huì)將新服務(wù)的描述信息加入到server-config.wsdd中。
如果需要在Web服務(wù)器啟動(dòng)時(shí),自動(dòng)加載WEB服務(wù),只需將server-config.wsdd與WEB應(yīng)用描述文件web.xml一并放置在WEB-INF目錄下即可。
server-config.wsdd中的內(nèi)容可以手工更改獲取,也可通過發(fā)布獲取自動(dòng)生成的文件。
a) 將WEB服務(wù)發(fā)布后,從WEB應(yīng)用的WEB-INF目錄下,獲取自動(dòng)生成的server-config.wsdd文件。
b) 手工更改時(shí),將deploy.wsdd文件中的…中的內(nèi)容直接拷貝,粘貼到原始server-config.wsdd文件中單獨(dú)行即可。
2.2.4 如何將Axis集成到自己的Web應(yīng)用中。
Axis是以Servlet的方式運(yùn)行的,而Tomcat的作用相當(dāng)于Servlets容器(Container),因此只要配置得當(dāng),就可以使Axis在Tomcat環(huán)境中運(yùn)行,這一點(diǎn)也適用于Tomcat以外的其它應(yīng)用服務(wù)器。在Tomcat中配置Axis的方法如下。
將axis-1_1/webapps/axis/WEB-INF/web.xml中的Servlet配置項(xiàng)復(fù)制到自己Web應(yīng)用描述文件web.xml中對(duì)應(yīng)位置上。通常應(yīng)包括以下內(nèi)容。
在Servlet定義與servlet-mapping定義間,將本W(wǎng)EB應(yīng)用的Servlet定義加入。
AxisServlet
Apache-Axis Servlet
org.apache.axis.transport.http.AxisServlet
AdminServlet
Axis Admin Servlet
org.apache.axis.transport.http.AdminServlet
100
SOAPMonitorService
SOAPMonitorService
org.apache.axis.monitor.SOAPMonitorService
SOAPMonitorPort
5001
100
AxisServlet
/axis/servlet/AxisServlet
AxisServlet
*.jws
AxisServlet
/services/*
SOAPMonitorService
/SOAPMonitor
wsdl
text/xml
xsd
text/xml
2.2.5 Axis提供了哪些開發(fā)工具
Apache Axis提供了WSDL2Java和Java2WSDL兩個(gè)開發(fā)工具。
WSDL2Java利用已知的WSDL文件生成服務(wù)端和客戶端代碼。該WSDL文件可以是由合作伙伴提供的,也可以是利用Java2WSDL生成的。Java2WSDL根據(jù)已有的Java類文件生成WSDL文件,Java類文件可以是接口類文件,并不需要實(shí)現(xiàn)細(xì)節(jié)。
此外Axis還提供了SoapMonitorApplet和TCPMon工具,可用于監(jiān)測(cè)Web服務(wù)。
1 如何開發(fā)Web服務(wù)的服務(wù)端和客戶端代碼
1.1 生成或取得WSDL文件
Java2WSDL是Axis提供的利用Java類文件得到WSDL文件的工具。類文件可以使用接口文件編譯生成。
生成WSDL文件以后,就可以利用Axis提供的WSDL2Java工具生成Web服務(wù)的服務(wù)端代碼和客戶端代碼了
注意事項(xiàng) :
WSDL文件也可以由合作伙伴提供。這種情況下合作伙伴往往是Web服務(wù)的提供者或標(biāo)準(zhǔn)接口的制定者,開發(fā)者只要按照既定的WSDL文從件生成客戶端或服務(wù)端代碼就可以了。
1.2 開發(fā)客戶端
在開發(fā)客戶端時(shí),WEB接口定義文件WSDL一般已經(jīng)提供,或者可以通過Internat獲取。如果未提供一般也提供了接口描述文檔,詳細(xì)描述了接口輸入、輸出參數(shù)定義,據(jù)此我們可以聲明Interface接口,通過Aixs提供的java2WSDL生成WSDL文件。
下面我們假定WSDL文件已經(jīng)提供;并且我們假定讀者對(duì)eclipse、ant已經(jīng)有一定了解。
WSDL2Java工具用于從WSDL文件生成客戶端存根(stub)代碼,服務(wù)端框架(skeleton)代碼以及WSDL中的數(shù)據(jù)類型文件(生成與之對(duì)應(yīng)的Java代碼)。開發(fā)人員只需向框架代碼中補(bǔ)充相關(guān)的業(yè)務(wù)邏輯代碼即可得到完整的Web服務(wù)代碼,因此該工具極大地減輕了開發(fā)人員的編碼負(fù)擔(dān)。
axis_ant.jar包中已經(jīng)定義了Axis集成Ant的相關(guān)Ant任務(wù)定義。任務(wù)定義在axis-tasks.properties中
#properties file for taskdefing the public Axis taskdefs
axis-wsdl2java=org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask
axis-java2wsdl=org.apache.axis.tools.ant.wsdl.Java2WsdlAntTask
axis-admin=org.apache.axis.tools.ant.axis.AdminClientTask
Ant任務(wù)名
對(duì)應(yīng)Axis提供的工具
備注
axis-wsdl2java
WSDL2java
axis-java2wsdl
Java2WSDL
axis-admin
AdminClient
1. 假定應(yīng)用工程目錄結(jié)構(gòu)如下:
│ build.properties
│ build.xml
│ myAxis.wsdl
├─bin
└─src
2. build.properties文件內(nèi)容如下:
axis.home = D:\\java\\axis\\axis-1_2beta
wsdl.file = myAxis.wsdl
namespace.service = urn:MyAxis
package.service = com.MyAxis.client
3. Ant文件build.xml內(nèi)容如下:
定義Axis包所在類路徑-->
從axis-ant.jar包中,引入Axis的Ant任務(wù)定義-->
classpathref="axis.classpath" />
依據(jù)WSDL文件,生成客戶端代碼-->
url="${basedir}/${wsdl.file}"
deployscope="Request"
output="${generated.path.src}"
serverside="false"
skeletondeploy="false"
testcase="true"
noimports="false"
>
1.1 開發(fā)服務(wù)端
開發(fā)服務(wù)端程序的一般步驟如下:
l 根據(jù)接口定義,定義java Interface接口。
l 根據(jù)interface接口文件,使用java2WSDL生成WEB服務(wù)描述文件
l 根據(jù)WSDL文件,使用WSDL2java生成對(duì)應(yīng)的服務(wù)端代碼
l 修改自動(dòng)生成的實(shí)現(xiàn)代碼類[webapp]SoapBindingImpl.java,完成接口具體操作。
l 考慮到WEB服務(wù)為系統(tǒng)對(duì)外門戶,具體業(yè)務(wù)邏輯可能分模塊實(shí)現(xiàn),建議考慮參考門面模式完成interface定義;在服務(wù)端具體實(shí)現(xiàn)時(shí),WEB服務(wù)接口部分向邏輯提供接口,由邏輯實(shí)現(xiàn)組件完成具體的邏輯操作。WEB服務(wù)部分僅完成SOAP協(xié)議解封裝等工作。
1. 假定工程路徑如下:
├─conf
├─generated
├─source
├─src
└─WebRoot
├─META-INF
└─WEB-INF
└─lib
2. build.properties Ant腳本使用屬性
wsdl.file = myAxis.wsdl
########接口文件com.myaxis.MyAxis.java;供java2WSDL使用#####
wsi.interface = com.myaxis.MyAxis
location =
http://localhost/CmsWsi/services/CmsWsi
########期望生成的接口定義包與命名空間對(duì)應(yīng)關(guān)系;供WSDL2java使用###
namespace.service =
http://com.
myaxis.MyAxis/1.00
package.service = com.myaxis.server
########期望生成的接口相關(guān)消息類與命名空間對(duì)應(yīng)關(guān)系;供WSDL2java使用###
namespace.service.msg =
http://com.myaxis.msg
package.service.msg = com.myaxis.server.msg
########WEB容器定義,共AdminClient發(fā)布、注銷WEB服務(wù)使用###
target.port = 80
target.server = localhost
target.appname = MyAxis
servletpath.admin = services/AdminService
########在ANT腳本中采用命令行方式時(shí),發(fā)布調(diào)用的AdminClient位置##
location.admin =
http://localhost/MyAxis/services/AdminService
3. build.xml
加載build.propertis定義-->
容器下的類路徑,Axis相關(guān)jar已拷貝到對(duì)應(yīng)目錄下-->
引入Axis的Ant任務(wù)定義-->
classpathref="axis.classpath" />
初試化,構(gòu)造WSDL2java生成代碼路徑,-->
依據(jù)java Interface定義,生成WSDL定義文件-->
location="${location}"
namespace="${namespace.service}"
output="${generated.path}/${wsdl.file}"
style="RPC"
>
根據(jù)WSDL文件,生成WEB服務(wù)的服務(wù)器端源碼;考慮到接口更改,版本管理的方便,生成代碼不直接導(dǎo)向src目錄;第一次運(yùn)行后,需要手工將代碼拷貝到src;每次修改接口后,必須清空生成源目錄,通過比較工具修改src目錄下的源文件,否則Axis判斷[webapp]SoapBindingImpl.java已存在不會(huì)進(jìn)行更新。-->
url="${basedir}/${wsdl.file}"
deployscope="Request"
output="${generated.path.src}"
serverside="true"
skeletondeploy="false"
testcase="true"
noimports="false"
>
拷貝Web服務(wù)發(fā)布、注銷腳本,deploy.wsdd和undeploy.wsdd-->
發(fā)布WEB服務(wù)到WEB容器,Axis在WEB-INF/下自動(dòng)生成server-config.wsdd-->
腳本方式發(fā)布服務(wù)-->
命令行方式發(fā)布服務(wù)-->
fork="true"
failonerror="true">
posted on 2005-08-12 22:46
笨笨
閱讀(1050)
評(píng)論(0)
編輯
收藏
所屬分類:
J2EE
、
ALL
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
簡(jiǎn)化JavaMail:小巧 Jakarta Commons-Email 簡(jiǎn)單教程
讀"Under the Hood of J2EE Clustering" J2EE集群
Phase
x509數(shù)字證書介紹
SSL※ X509
了解安全性斷言標(biāo)記語言
架構(gòu)藍(lán)圖--軟件架構(gòu) "4+1" 視圖模型
主動(dòng)對(duì)象
Profile,Stereotype,TaggedValue與OCL漫談
Drools 為你的業(yè)務(wù)邏輯提供框架(翻譯)
Powered by:
BlogJava
Copyright © 笨笨
主站蜘蛛池模板:
延庆县
|
徐州市
|
张北县
|
固始县
|
阿巴嘎旗
|
白河县
|
天门市
|
阿坝县
|
溧阳市
|
海阳市
|
广州市
|
榆中县
|
靖边县
|
府谷县
|
兴义市
|
从江县
|
屏山县
|
高要市
|
宣汉县
|
湖口县
|
静乐县
|
马边
|
苍溪县
|
崇明县
|
和硕县
|
普安县
|
天镇县
|
宁南县
|
抚顺县
|
冕宁县
|
巴马
|
靖宇县
|
清远市
|
彰化县
|
盱眙县
|
荥阳市
|
安仁县
|
巧家县
|
新龙县
|
上高县
|
长岛县
|