浣跨敤Axis錛岃鍙戝竷涓涓猈eb鏈嶅姟闈炲父綆鍗曪紝綆鐩翠笉鑳藉啀綆鍗曚簡錛屽敖綆$湅璧鋒潵榪囩▼鍜岀浉鍏充唬鐮佹湁浜涢暱銆傛垜榪欎釜甯栧瓙閲岀敤鍒頒簡榪欎簺杞歡錛欰xis 1.1銆丒clipse 2.1鍜孍clipse鐨凾omcat鎻掍歡2.2錛?A >Sysdeo Tomcat plugin錛夈傚彂甯冪殑鏂規(guī)硶濡備笅錛?/P>
鎴戣鍙戝竷鐨勬湇鍔℃槸涓涓浘涔﹀晢搴楋紝鍏竷鐨勬柟娉曟湁娣誨姞鍥句功addBook銆佸垪琛ㄥ浘涔istBooks銆佸垹闄ゅ浘涔eleteBook絳夌瓑錛屼負綆鍗曡搗瑙佽繖閲屽氨鍙彂甯冧竴涓坊鍔犲浘涔︽柟娉曪紝鍥犱負鍏朵粬鏂規(guī)硶鐨勫彂甯冩槸綾諱技鐨勩?/P>
1銆侀鍏堝湪Eclipse閲屾柊寤轟竴涓悕涓篵ookstore鐨凾omcat宸ョ▼錛屾敞鎰忚瀹夎浜嗗墠闈㈣鐨凾omcat鎻掍歡鎵嶆湁榪欎釜閫夐」鐨勩傚鏋滄病鏈夊畨瑁呭彲浠ュ緩绔嬩竴涓猨ava宸ョ▼錛岀劧鍚庢墜鍔ㄥ緩绔嬪繀瑕佺殑鐩綍緇撴瀯錛圵EB-INF絳夛級錛屽茍鍦═omcat鐨剆erver.xml閲屾墜鍔ㄥ鍔犱笌欏圭洰瀵瑰簲鐨?lt;context>欏廣?/P>
2銆佹帴涓嬫潵寤虹珛鍥句功綾伙紙com.bookstore.model.Book錛夛紝鍥句功鏈夊悕縐般両SDN鍙峰拰欏墊暟涓変釜灞炴э紝榪欐槸涓涓狟ean綾伙紝浠g爜濡備笅錛?/P>
package com.bookstore.model;

public class Book {
private String name;
private String ISDN;
private int page;

public String getISDN() {
return ISDN;
}

public String getName() {
return name;
}

public int getPage() {
return page;
}

public void setISDN(String string) {
ISDN = string;
}

public void setName(String string) {
name = string;
}

public void setPage(int i) {
page = i;
}

}

3銆佹帴涓嬫潵寤虹珛鐢ㄦ潵鎻愪緵鏈嶅姟鐨勭被錛坈om.bookstore.BookSvc錛夛紝榪欎釜綾誨氨鏄疄闄呯殑鍔熻兘綾諱簡錛屽畠閲岄潰鍙湁涓涓猵ublic鐨刟ddBook()鏂規(guī)硶錛岃屽畠鐨勫弬鏁板彧鏈変竴涓氨鏄娣誨姞鐨勫浘涔︺備唬鐮佸涓嬶細
package com.bookstore;

import com.bookstore.model.Book;

public class BookSvc {
public void addBook(Book book){
//here you save a book into database
System.out.println("Book has been added.");
}
}

4銆佺幇鍦紝鎶婁笅杞芥潵鐨凙xis瑙e帇緙╁埌涓涓枃浠跺す錛岃繖閲屽亣璁句綘瑙e埌C:\axis-1_1銆傛妸C:\axis-1_1\webapps\axis\WEB-INF\lib鐩綍涓嬬殑鎵鏈?jar鏂囦歡澶嶅埗鍒頒綘鐨勮繖涓獁eb搴旂敤紼嬪簭鐨刉EB-INF\lib涓嬶紝鍐嶆妸C:\axis-1_1\webapps\axis\WEB-INF鐩綍涓嬬殑web.xml澶嶅埗鍒頒綘鐨剋eb搴旂敤紼嬪簭鐨刉EB-INF涓嬨傝繖涓楠ょ浉褰撲簬鍦ㄤ綘鐨剋eb搴旂敤紼嬪簭涓厤緗簡Axis銆?/P>
5銆佷負浜嗚Axis鐭ラ亾浣犺鍙戝竷鍝簺鏈嶅姟錛屼綘寰楀湪WEB-INF涓嬪緩绔嬩竴涓悕涓簊erver-config.wsdd鐨勬枃浠訛紝鍐呭濡備笅錛?/P>
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<parameter name="adminPassword" value="admin"/>
<parameter name="attachments.Directory" value="C:\eclipse\workspace\bookstore\WEB-INF\attachments"/>
<parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<parameter name="sendXsiTypes" value="true"/>
<parameter name="sendMultiRefs" value="true"/>
<parameter name="sendXMLDeclaration" value="true"/>
<parameter name="axis.sendMinimizedElements" value="true"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
</requestFlow>
</globalConfiguration>
<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<service name="Version" provider="java:RPC">
<parameter name="allowedMethods" value="getVersion"/>
<parameter name="className" value="org.apache.axis.Version"/>
</service>
<service name="BookSvc" provider="java:RPC">
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="com.bookstore.BookSvc"/>
</service>
<service name="AdminService" provider="java:MSG">
<parameter name="allowedMethods" value="AdminService"/>
<parameter name="enableRemoteAdmin" value="false"/>
<parameter name="className" value="org.apache.axis.utils.Admin"/>
<namespace>http://xml.apache.org/axis/wsdd/</namespace>
</service>
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>
</deployment>
榪欎釜鏂囦歡閲屽彂甯冧簡涓変釜鏈嶅姟錛歏ersion銆丄dminService鍜屾垜浠殑BookSvc銆傝繕鏈変竴涓柟娉曞彲浠ョ敓鎴愯繖涓枃浠訛紝濂借薄Axis鎺ㄨ崘浣跨敤榪欑鐢熸垚鐨勬柟娉曪紝灝辨槸鍦ㄥ悓鏍風(fēng)洰褰曚笅鍐欎竴涓猟eploy.wsdd鏂囦歡錛堝鏋滀笉鎯崇湅鍙互鐩存帴璺沖埌涓嬩竴姝ワ級錛屽唴瀹瑰涓嬶細
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="BookSvc" provider="java:RPC">
<parameter name="className" value="com.bookstore.BookSvc"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
涔熷氨鏄deploy.wsdd閲屽彧鍖呭惈鍏充簬鎴戜滑鐨勬湇鍔$殑鎻忚堪錛岀‘璁omcat宸茬粡鍚姩錛岀劧鍚庡湪鍚屼竴鐩綍涓嬬敤涓嬮潰榪欎釜鍛戒護鐢熸垚server-config.wsdd鏂囦歡錛?/P>
java org.apache.axis.client.AdminClient -lhttp://localhost:8080/bookstore/services/AdminService deploy.wsdd
鍏朵腑bookstore鏄垜榪欎釜web搴旂敤紼嬪簭鐨勮櫄鎷熻礬寰勩?/P>
6銆侀噸鏂板惎鍔═omcat錛岃闂礬寰?A href="http://localhost:8080/bookstore/services">http://localhost:8080/bookstore/services錛屽氨鍙互鐪嬪埌鐜板湪鍙戝竷浜嗕笁涓猈eb鏈嶅姟錛屽涓嬪浘銆傜偣鍑繪瘡涓湇鍔″悗鐨剋sdl閾炬帴鍙互鐪嬪埌瀵瑰簲鐨刉SDL鎻忚堪銆?/P>

鍙互鐪嬪嚭錛屽湪Axis閲屼功鍐檇eploy.wsdd騫跺埄鐢╫rg.apache.axis.client.AdminClient鍙戝竷錛屽叾涓昏宸ヤ綔灝辨槸鎶?lt;service>鏍囩涓殑鍐呭娣誨姞鍦╯erver-config.wsdd閲岋紝鎵浠ヤ竴鑸洿鎺ョ紪杈憇erver-config.wsdd鏂囦歡浼氭洿鏂逛究涓浜涖備笉榪囧綋浣犺繕娌℃湁server-config.wsdd鏂囦歡鏃訛紝浣跨敤deploy.wsdd鐨勬柟娉曚細鏇存柟渚夸簺錛屽洜涓篈dminClient浼氬府浣犵敓鎴愪竴浜涢澶栫殑xml鍏冪礌錛?lt;handler>絳夌瓑錛夛紝鑰岃繖浜涘厓绱犳槸蹇呰鐨勩?/P>
鏈嶅姟鍙戝竷浠ュ悗錛屽氨鍙互鍦↖E嫻忚鍣ㄩ噷鐪嬪埌瀹冪殑WSDL錛屼竴鑸槸鏈嶅姟鐨刄RL鍚庨潰鍔犱竴涓?wsdl鈥濓紝渚嬪娣誨姞鍥句功鐨刉SDL鍙互閫氳繃http://localhost:8080/bookstore/services/BookSvc?wsdl鐪嬪埌銆傝嚦浜嶫ava綾繪槸浠ヤ綍縐嶈鍒欐槧灝勫埌WSDL鐨勶紝璇峰弬鑰?A >JAX-RPC瑙勮寖錛沇SDL鏈韓鐨勮鏄庤榪欓噷錛涗負浜嗘悶娓呯敓鎴愮殑WSDL涓悇縐峌RL鏍煎紡鐨勫悕縐扮┖闂達紝鏈濂藉XML Schema鏈夋墍浜嗚В錛屾垜瑙夊緱榪欑瘒鏂囩珷榪樹笉閿欍?/P>
鎴戜滑榪樺彲浠ラ氳繃IE嫻忚鍣ㄧ洿鎺ヨ皟鐢ㄦ湇鍔★紝鏂規(guī)硶鏄湪鏈嶅姟URL鍚庡姞鈥渕ethod=xxx鈥濓紝鍏朵腑xxx鏄璋冪敤鐨勬柟娉曞悕縐般備緥濡傚彲浠ラ氳繃http://localhost:8080/bookstore/services/BookSvc?method=addBook璋冪敤娣誨姞鍥句功鏂規(guī)硶錛屾寜鐓ф垜浠殑鏈嶅姟綾伙紝鍦═omcat鐨勬帶鍒跺彴涓婂簲璇ュ彲浠ョ湅鍒版墦鍑轟簡鈥淏ook has been added.鈥濈殑瀛楁牱銆?/P>
鍥犱負娣誨姞鍥句功鏂規(guī)硶鐨勫弬鏁版槸涓涓嚜瀹氫箟綾誨瀷錛屾墍浠ュ湪IE閲岃皟鐢ㄦ椂涓嶈兘鎸囧畾鍙傛暟鍊鹼紙鎴栬呮槸鍙互浠ュ叾浠栨牸寮忔寚瀹氾紝浣嗘垜榪樹笉鐭ラ亾錛夛紱濡傛灉鍙傛暟鏄畝鍗曠被鍨嬶紝灝卞彲浠ユ寚瀹氫簡銆備緥濡傛垜浠彲浠ヤ負BookSvc澧炲姞涓涓猠cho()鏂規(guī)硶錛屽弬鏁版槸涓涓猨ava.lang.String綾誨瀷鐨勫鹼紝濡備笅鎵紺猴紝鐒跺悗閲嶆柊緙栬瘧騫跺惎鍔═omcat錛坰erver-config.wsdd鏂囦歡涓嶅繀鏇存敼錛夈?/P>
public void echo(String str){
System.out.println("Hello "+str);
}

鍦↖E閲岃緭鍏?A href="http://localhost:8080/bookstore/services/BookSvc?method=echo&str=Mike">http://localhost:8080/bookstore/services/BookSvc?method=echo&str=Mike錛屽氨浼氱湅鍒癟omcat鐨勬帶鍒跺彴閲屾墦鍑轟簡鈥淗ello Mike鈥濄傚鏋滄湁澶氫釜鍙傛暟錛屽彧瑕佹妸榪欎簺鍙傛暟閮藉垪鍦║RL閲屽嵆鍙?/P>
]]>