這裡,用的xfire1.2.6和spring 2.0,開發工具用的myeclispe,雖然myeclipse自帶了開發xfire的外掛程式,但為了不依賴開發工具,所以以下為手動建立。
xfire 可以很好的和spring 整合,下面分兩部分介紹
純xfire 的web service
1.2、修改web.xml檔案,新增如下內容,以支援xfire:
這樣,便可以通過http://localhost:8080/projectname/services/ 路徑來訪問所有發布的web services了。
1.3、在專案下的web-inf目錄下建立meta-inf/xfire/這個目錄,在此目錄下建立services.xml檔案,這個檔案用來添寫我的要發布的web services。檔案內容如下所示:
helloservice
com.services.helloservice
com.services.helloserviceimpl
檔案的內容如下:
:發布乙個web service;
:發布web service的名稱;
:提供服務的介面類;
:實現服務介面類的具體類。
注:這裡用的spring 2.0,如果是用xfire 自帶的spring1.2.6,應該將
xmlns="
" 放到裡去定義。
1.4、下面,將這個web 專案,發布到tomcat下,便可以使用
來呼叫這個web
service了。
於spring 整合的xfire 開發web services,這裡用的是spring 2.0,如果是spring2.5,需要將spring-webmvc.jar新增進來。
下面說與spring 整合的xfire開發步驟
spring 與xfire 有三種結合方式,下面以直接與spring整合的方法說明。 (
通過spring的org.springframework.web.servlet.dispatcherservlet)。
2.1、將xfire與spring的jar包放到web 專案的classpath
2.2、修改web.xml,使其支援spring 與xfire,新增如下內容:
contextconfiglocation
classpath:org/codehaus/xfire/spring/xfire.xml
org.springframework.web.context.contextloaderlistener
xfire
org.springframework.web.servlet.dispatcherservlet
0/service/*
在本例中,將此檔案放在web-inf/conf目錄下。內容如下:
<?xml version="1.0" encoding="utf-8"?>
這裡,定義了乙個bean,這裡用的是web services介面的實現類。
2.4、在web-inf下建立xfire-servlet.xml檔案,這裡的xfire是
org.springframework.web.servlet.dispatcherservlet
這個servlet的名稱,應該根據自己的進行修改
內容如下:
<?xml version="1.0" encoding="utf-8"?>//url,訪問位址
com.service.helloservice
這樣便生成乙個web service,可以通過網域名稱來訪問,並編寫客戶端**了。
另一種方式,使用xfire自帶的
org.codehaus.xfire.spring.xfirespringservlet
這個類進行設定。
方法如下:
修改web.xml,新增如下內容:
contextconfiglocation
org.springframework.web.context.contextloaderlistener
xfireservlet
org.codehaus.xfire.spring.xfirespringservlet
/service/*
<?xml version="1.0" encoding="utf-8"?>
但個web service是沒有任何安全性可言的,任何拿到wsdl的人都可以輕鬆地構造客戶端程式訪問我們的web service服務。
基於Xfire實現webservice的超時設定
最近在做需求的時候,遇到乙個問題,就是呼叫三方的服務,沒有設定超時鏈結,影響了訊息佇列中訊息的消費速度,進而導致訊息佇列訊息有擠壓。對此找到了一種設定連線超時的方法,適用於基於xfire實現webservice的呼叫,具體如下 1 新建httpmessagesender 2 在呼叫端設定httpcl...
18 webserv 流socket的應用
1 伺服器設計 學習了網路程式設計的基本操作和設計原則,建立乙個web伺服器,這是乙個典型的socket流的客戶端 伺服器系統。伺服器設立服務,然後進入迴圈接收和處理請求。客戶端連線到伺服器,然後傳送 接收或者交換資料,最後退出。該互動過程主要包含3個操作 2 建立伺服器socket 設立乙個服務一...
關於delphi呼叫c 寫的webservice
因為這次專案涉及到跨平台的,所採用delphi呼叫webservice 一開始的時候用delphi自動生成wsdl。呼叫hellowordl成功。非常開心,可是問題來了,helloworld是不需要傳引數,於是我就寫了乙個簡單的函式 public string returnstr string tt...