簡單的遠程通信java.net.URL
首先提供一個巨人寫的blog地址:http://www.aygfsteel.com/supercrsky/articles/247449.html以后可以參考,寫的很詳細很不錯。
例如:兩個服務器硬件服務器A和硬件服務器B,A中跑著應用服務器tomcat-X(服務器端),B中跑著應用服務器tomcat-Y(客戶端);
1、簡單的從服務器X端向另一個服務器Y端的一個Action請求,由Y返回給X一個信息。
//請求的url地址,從X中使用此鏈接帶一些參數給Y
String urlPath = "http://"+server.getResSynAddress()+":"+server.getProgramPort()+"/"+server.getProgramName()+"/server.do?method=checkServerForStudy&serverId="+server.getId()+"&resCode="+resCode+"&ip="+ip;
try{
URL url = new URL(urlPath);
HttpURLConnection httpurlconnection = (HttpURLConnection) url.openConnection();
httpurlconnection.setDoOutput(true);
httpurlconnection.setConnectTimeout(10000);
httpurlconnection.setRequestMethod("POST");
httpurlconnection.connect();
hf = httpurlconnection.getHeaderField("hf"); //獲取Y發回來的東東。
}catch(Exception e){
e.printStackTrace();
}
public ActionForward checkServerForStudy(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
//一些處理邏輯,沒必要看了。
String pathStrName1 = server.getResUploadAddr()+ resource.getUrlOfUpload();
File file1 = null;
File file2 = null;
boolean flag1 = false;
boolean flag2 = false;
String pathStrName2 = server.getResUploadAddr()+ resource.getPathOfPlay()+"/imsmanifest.xml";
file1 = new File(pathStrName1);
flag1 = file1.exists();
file2 = new File(pathStrName2);
flag2 = file2.exists();
if(flag1==true&&flag2==true){
response.setHeader("hf", "1"); //此處返回給X端一些東東;
}else{
response.setHeader("hf", "0"); //此處返回給X端一些東東;
}
return null;
}
ok這樣就實現了簡單的遠程通信。并不需要使用response.sendRedirect("url");這樣的代碼去從X服務器跳到Y服務器處理相關的邏輯。為什么非要跳到Y上呢?因為我需要檢查本地磁盤是否有我要的東西,也就是 File file1 = new File();
posted on 2011-05-31 23:48 生命的綻放 閱讀(504) 評論(0) 編輯 收藏 所屬分類: JAVA