使用Axis發布Webserive

2021-08-29 15:23:29 字數 1345 閱讀 8267

前戲:

其實有很多方式可以發布webservice,我試驗成功的有xfire和axis,本來對xfire情有獨鍾的,無奈xfire的jar包太多,隨便數了下有40多個,與我原專案中的多數jar包相衝突,並且有的版本和名稱都不一樣,手動挑選可能會發生些不可預計的錯誤,於是我轉用axis.

這裡面共有8個jar包,往往log4j-1.2.8.jar和commons-logging-1.0.4.jar與原工程中的包會產生衝突,所以我們可只匯入其餘6個jar包.

接下來我們在我們專案中書寫將要被呼叫的類.

這個類的意圖是為了將來客戶端訪問的時候,在客戶端傳入乙個字串引數,在服務端響應後返回一串字串.

這個類書寫完成後,將其改名為hello.jws,將你的專案發布後,假設你的hello.jws不在任何包中,瀏覽器的位址列輸入: 

即可看到你想要發布服務的wsdl檔案.     

然後為了客戶端能夠方便呼叫,還需要寫兩個檔案

在web-inf目錄下建立deploy.wsdd,內容如下

相信大家應該看得很明白了,代表我要發布的服務的類名是什麼,第二句showkeyword**客戶端可以呼叫我哪個方法.

這個檔案完了還要書寫乙個server-config.wsdd檔案,這檔案可以手寫生成,也可以讓系統自動生成

當專案發布後,開啟dos視窗,進入到deploy.wsdd檔案所在目錄,假如你的應用伺服器是tomcat,打入如下語句

系統會自動生成server-config.wsdd檔案,內容就不貼了,太長了.

至此服務端的開發基本完成,接下來就是客戶端了

客戶端也匯入之前所說的一些包,其實服務端很簡單,可以寫個類來呼叫剛才服務端發布的服務

例如你可以寫

import org.apache.axis.client.call;

import org.apache.axis.client.service;

public class helloclient

); system.out.println( res );}}

這個類最重要的就是那串url位址,我們可以通過這個url位址來呼叫不同服務端發布的服務.

其實由此已經可見一斑了,客戶端往往呼叫的都是比我們這個例子複雜得多的邏輯,我們可以將這些邏輯在服務端寫好,return出客戶端所需要的就可以了.

利用Axis發布WebService

發布服務的基本流程在這個帖子裡寫的非常詳細了,請參考但是我在完成發布,客戶端也可以正常呼叫介面後,發現乙個問題,每次呼叫都會對類進行一次初始化,這樣就無形中增加了資源的消耗,於是參考中內容,發現需要設定服務物件的生成次數,即 request代表為每個webservice soap的請求都產生乙個服務...

使用Axis的wsdd描述方式發布Web服務

2 編寫專案的web.xml檔案,新增如下 段 3 編寫你要發布web服務的類和方法 4 在web inf目錄下新增server config.wsdd檔案並新增如下 5 在瀏覽器中輸入 http localhost 8080 webservicetest services webservicest...

使用axis呼叫WebService

公司專案有乙個給使用者傳送簡訊的需求,需要呼叫乙個.net寫的webservice。在寫客戶端過程中,遇到了不少的問題,在這裡整理下,也希望和我遇到同樣問題的小夥伴些少走點彎路。直接上 public static boolean send string msgcontent,string destn...