前戲:
其實有很多方式可以發布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...