導航:首頁 > 編程語言 > java6webservice

java6webservice

發布時間:2025-03-06 21:27:16

㈠ 6、CXF與spring的整合(WebService的整合)

web.xml

說明: 這里主要配置了 spring 的配置文件地址, spring 監聽器、 CXF 核心控制器。

applicationContext.xml

說明:

在 spring 的配置文件中使用 jaxws:endpoint 元素來暴露 WebService ,這里有兩種方式:

然後我們就可以將工程部署到 tomcat 中,在瀏覽器中使用
地址 http://localhost:8080/cxf_spring/myService 訪問我們的 WebService 工程。

MyClient.java

注意: myService 指定我們的服務名字(在 web.xml 中配置),而 fkjava 指定服務提供者的地址(在 applicationContext.xml 中配置)。同時這種集成不好,因為將地址寫死了,沒有使用 spring 的注入方式。
我們看 HelloWorldWs.java 這個服務類:

可以看到其中的實際業務處理類還是使用的手工方法進行實例化,沒有使用 spring 的注入方式。

在 spring 的配置文件中改變暴露 WebService 的方式:

說明: 加 # 號是為了讓伺服器知道這個名字不是一個類 ,而只是一個 id 。
然後改造 HelloWorldWs.java 服務類:

然後我們再次使用之前的地址進行訪問,發現效果還是一樣的。

在上面配置的基礎上進行添加,在 applicationContext.xml 中:

此時,和以前一樣我們需要在客戶端(工程 Call_CXFSpring )那邊加上攔截器,添加上用戶名和密碼的頭,然後對伺服器進行訪問。以此來進行驗證。客戶端中我們運行類:
MyClient.java

訪問服務端。

傳統的 SSH 項目中,一般在本地是有相關的數據的,但是有一種場景是我們需要調用別人的數據,但是別人的數據不可能讓我們進行修改等操作,那麼別人只會暴露一個 WebService ,而我們就需要去調用別人的 WebService 伺服器。我們在訪問別人時,只能得到 WSDL 文檔。此時我們的項目中就不需要業務邏輯組件了,直接去調用別人的 WebService 的一個代理即可。

首先我們拷貝上面的工程,改名為 cxf_springClient ,然後需要增加 struts2 的相關 jar 包:

將原有的一些包刪掉,留下許可權包 org.fkjava.cxf.ws.auth 。然後我們啟動工程 Auth_Server 提供遠程服務。在 web 工程中生成相應的包及程序。

web.xml

說明: 這里我們不再需要 CXF 的 servlet 了,因為不需要業務類了,我們直接調用遠程業務即可。同時配置 struts2 的核心控制器。

applicationContext.xml

說明: 這里我們同樣不需要業務類了,但是需要配置遠程業務代理類( serviceClass )。同時注意:不要將埠設置為8080,會沖突。可以看到我們使用 serviceClass 將介面配置進去,而這里的 id 不能隨便寫,要和 action 中定義的介面名一致。由於遠程伺服器設置了許可權攔截,所以這里使用過濾器將用戶名和密碼設置到 wsdl 文檔的頭中。然後在這個類中我們需要使用 execute 方法去獲取相應的數據。

struts.xml

ListCatsAction .java

說明: 此時我們就可以使用地址 http://localhost:8080/cxf_springClient/listCats 進行訪問了,當然會報找不到 jsp 的錯誤。

content/listCats.jsp

說明: 此時訪問就可以看到

㈡ java客戶端調用webservice時 連接超時知道是網路原因 ,如何重試如果不重試程序就死瑣了,

先把連接超時的時間設置長一點!
拋異常處理時,空處理異常,繼續調用連接方法,不過,伺服器一般都有連接超時的時間的,超過時間連接不上,就會自動中斷客戶端的請求。釋放資源!

㈢ 用java怎麼寫webservice

Web Services以XML作為數據交換的標准格式,它是跨平台的應用,允許以任何方式創建Web Services,在.NET、Java平台上訪問。
在Java平台創建和訪問Web Service多通過Axis完成。Axis本質上就是一個SOAP引擎,提供創建伺服器端、客戶端和網關SOAP操作的基本框架。Axis目前版本是為Java編寫的。在使用Axis訪問Web Service時,需要引入以下包(10個):axis-ant.jar、axis.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar、activation-1.1.jar和mail-1.4.jar。
(1)訪問Java創建的Web Service
在當前Java客戶端應用中添加相應的10個Axis包,編寫客戶端程序:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class Test {
public static void main(String[] args) throws Exception {
try{
String endpoint = "http://localhost:8080/MyService/services/Hello";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("getHello");
String res = (String) call.invoke(new Object[]{});
System.out.println(res);
}
catch (Exception ex){
ex.printStackTrace();
}
}
}
其中兩處代碼加粗,第一處表示引用Java Web Service的URL,第二處表示公共的方法名稱。

閱讀全文

與java6webservice相關的資料

熱點內容
minecraft伺服器怎麼布置 瀏覽:306
怎麼把安卓的東西轉到已激活蘋果 瀏覽:852
停止服務doss命令 瀏覽:877
u盤占內存但該文件夾為空 瀏覽:611
伺服器怎麼更換重生點 瀏覽:34
收費api調用平台源碼 瀏覽:646
安卓怎麼自檢病毒 瀏覽:560
布卡雲伺服器 瀏覽:770
程序員是怎麼做系統的 瀏覽:742
燕窩溯源碼最大加工廠 瀏覽:936
黑馬程序員第28集 瀏覽:485
lcd單片機驅動 瀏覽:647
通達信主力拉升出貨指標公式源碼 瀏覽:639
廉潔pdf 瀏覽:18
批量用修改多個文件夾及子目錄 瀏覽:321
王者每個伺服器爆滿怎麼辦 瀏覽:951
安卓手機如何清除所有的數據 瀏覽:983
激光打標機加密狗驅動無法啟動 瀏覽:912
矽谷程序員題庫 瀏覽:565
安卓系統怎麼開車模式 瀏覽:944