這篇帖子是對《使用Axis發(fā)布簡(jiǎn)單的Web服務(wù)》的補充。
可以看出,在A(yíng)xis里書(shū)寫(xiě)deploy.wsdd并利用org.apache.axis.client.AdminClient發(fā)布,其主要工作就是把<service>標簽中的內容添加在server-config.wsdd里,所以一般直接編輯server-config.wsdd文件會(huì )更方便一些。不過(guò)當你還沒(méi)有server-config.wsdd文件時(shí),使用deploy.wsdd的方法會(huì )更方便些,因為AdminClient會(huì )幫你生成一些額外的xml元素(<handler>等等),而這些元素是必要的。
服務(wù)發(fā)布以后,就可以在IE瀏覽器里看到它的WSDL,一般是服務(wù)的URL后面加一個(gè)“?wsdl”,例如添加圖書(shū)的WSDL可以通過(guò)http://localhost:8080/bookstore/services/BookSvc?wsdl看到。至于Java類(lèi)是以何種規則映射到WSDL的,請參考JAX-RPC規范;WSDL本身的說(shuō)明見(jiàn)這里;為了搞清生成的WSDL中各種URL格式的名稱(chēng)空間,最好對XML Schema有所了解,我覺(jué)得這篇文章還不錯。
我們還可以通過(guò)IE瀏覽器直接調用服務(wù),方法是在服務(wù)URL后加“method=xxx”,其中xxx是要調用的方法名稱(chēng)。例如可以通過(guò)http://localhost:8080/bookstore/services/BookSvc?method=addBook調用添加圖書(shū)方法,按照我們的服務(wù)類(lèi),在Tomcat的控制臺上應該可以看到打出了“Book has been added.”的字樣。
因為添加圖書(shū)方法的參數是一個(gè)自定義類(lèi)型,所以在IE里調用時(shí)不能指定參數值(或者是可以以其他格式指定,但我還不知道);如果參數是簡(jiǎn)單類(lèi)型,就可以指定了。例如我們可以為BookSvc增加一個(gè)echo()方法,參數是一個(gè)java.lang.String類(lèi)型的值,如下所示,然后重新編譯并啟動(dòng)Tomcat(server-config.wsdd文件不必更改)。




在IE里輸入http://localhost:8080/bookstore/services/BookSvc?method=echo&str=Mike,就會(huì )看到Tomcat的控制臺里打出了“Hello Mike”。如果有多個(gè)參數,只要把這些參數都列在URL里即可。
相關(guān)鏈接:
聯(lián)系客服