導航:首頁 > 凈水問答 > 過濾器遠程調用介面

過濾器遠程調用介面

發布時間:2021-01-31 00:10:57

⑴ java怎麼遠程調用webservice介面

Java通過WSDL文件來調用webservice:

注意,以下的代碼並沒有經過真正的測試,只是說明這些情況,不同版本的Axis相差很大,大家最好以apache網站上的例子為准,這里僅僅用於說明其基本用法。
1,直接AXIS調用遠程的web service
這種方法比較適合那些高手,他們能直接看懂XML格式的WSDL文件,我自己是看不懂的,尤其我不是專門搞這行的,即使一段時間看懂,後來也就忘記了。直接調用模式如下:
import java.util.Date;
import java.text.DateFormat;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
import java.lang.Integer;
import javax.xml.rpc.ParameterMode;

public class caClient {

public static void main(String[] args) {

try {
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";
//直接引用遠程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL裡面描述的介面名稱
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//介面的參數
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設置返回類型

String temp = "測試人員";
String result = (String)call.invoke(new Object[]{temp});
//給方法傳遞參數,並且調用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
2,直接SOAP調用遠程的webservice
這種模式我從來沒有見過,也沒有試過,但是網路上有人貼出來,我也轉過來
import org.apache.soap.util.xml.*;
import org.apache.soap.*;
import org.apache.soap.rpc.*;

import java.io.*;
import java.net.*;
import java.util.Vector;

public class caService{
public static String getService(String user) {
URL url = null;
try {
url=new URL("http://192.168.0.100:8080/ca3/services/caSynrochnized");
} catch (MalformedURLException mue) {
return mue.getMessage();
}
// This is the main SOAP object
Call soapCall = new Call();
// Use SOAP encoding
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
// This is the remote object we're asking for the price
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized");
// This is the name of the method on the above object
soapCall.setMethodName("getUser");
// We need to send the ISBN number as an input parameter to the method
Vector soapParams = new Vector();

// name, type, value, encoding style
Parameter isbnParam = new Parameter("userName", String.class, user, null);
soapParams.addElement(isbnParam);
soapCall.setParams(soapParams);
try {
// Invoke the remote method on the object
Response soapResponse = soapCall.invoke(url,"");
// Check to see if there is an error, return "N/A"
if (soapResponse.generatedFault()) {
Fault fault = soapResponse.getFault();
String f = fault.getFaultString();
return f;
} else {
// read result
Parameter soapResult = soapResponse.getReturnValue ();
// get a string from the result
return soapResult.getValue().toString();
}
} catch (SOAPException se) {
return se.getMessage();
}
}
}
3,使用wsdl2java把WSDL文件轉成本地類,然後像本地類一樣使用,即可。
這是像我這種懶人最喜歡的方式,仍然以前面的global weather report為例。
首先 java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/globalweather.asmx.WSDL
原本的網址是http://www.webservicex.net/globalweather.asmx?WSDL,中間個各問號,但是Linux下面它不能解析,所以去掉問號,改為點號。
那麼就會出現4個文件:
GlobalWeather.java GlobalWeatherLocator.java GlobalWeatherSoap.java GlobalWeatherSoapStub.java
其中GlobalWeatherSoap.java是我們最為關心的介面文件,如果你對RMI等SOAP實現的具體細節不感興趣,那麼你只需要看介面文件即可,在使用的時候,引入這個介面即可,就好像使用本地類一樣。

⑵ EJB遠程介面調用到底是什麼意思

我來談談自己的看法。

--
由於一個企業級的應用,他比較大,然後EJB是部署在某個伺服器上,內提供一個遠程調容用的介面,內部一套你設計的流程來組織數據,反饋給調用的地方。

如何調用呢?
一般是WEB APP,直接調用它的一個借口類,EJB必須發布成JAR包,包含在WEB-APP裡面。調用的時候,才能夠找到EJB中對應的方法這些。

--
EJB組件式獨立部署的。
做幾個小東西,嚴格的按照流程,發布到不同的伺服器上,體會下吧。

⑶ 編寫servlet 過濾器時,下面哪個介面用於調用過濾器

javax.servlet.Filter
實現來這個介面,這個介面有三源個方法。
void init(FilterConfig var1) 過濾器初始化時調用的方法

void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) 過濾器執行時調用的方法。

void destroy() 過濾器被銷毀時調用的方法。

⑷ 客戶機訪問伺服器是訪問遠程介面的方法,還是直接訪問遠程介面的實例方法

Java 遠程處理
Java遠程方法調用(RMI)提供了Java程序語言的遠程通訊功能,這種特性使客戶機上運行的程序可以調用遠程伺服器上的對象,使Java編程人員能夠在網路環境中分布操作。
創建一個簡單的Java分布式遠程方法調用程序可以按以下幾個步驟操作,

一、定義遠程介面:
在 Java 中,遠程對象是實現遠程介面的類的實例, 遠程介面聲明每個要遠程調用的方法。在需要創建一個遠程對象的時候,我們通過傳遞一個介面來隱藏基層的實施細節,客戶通過介面句柄發送消息即可。
遠程介面具有如下特點:
1) 遠程介面必須為public屬性。如果不這樣,除非客戶端與遠程介面在同一個包內,否則 當試圖裝入實現該遠程介面的遠程對象時,調用會得到錯誤結果。
2) 遠程介面必須擴展介面java.rmi.Remote。
3) 除與應用程序本身特定的例外之外,遠程介面中的每個方法都必須在自己的throws從句中 聲明java.rmi.RemoteException。(或 RemoteException 的父類)。
4) 作為參數或返回值傳遞的一個遠程對象(不管是直接,還是本地對象中嵌入)必須聲明為遠 程介面,而不應聲明為實施類。
下面是遠程介面的定義
[java] view plain
package test;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.math.BigInteger;

public interface Fib extends Remote {
public int getFib(int n) throws RemoteException;
// public BigInteger getFib(BigInteger n) throws RemoteException;
}
二、實現遠程介面:
遠程對象實現類必須擴展遠程對象java.rmi.UnicastRemoteObject類,並實現所定義的遠程介面。遠程對象的實現類中包含實現每個遠程介面所指定的遠程方法的代碼。這個類也可以含有附加的方法,但客戶只能使用遠程介面中的方法。因為客戶是指向介面的一個句柄,而不是它的哪個類。必須為遠程對象定義構造函數,即使只准備定義一個默認構造函數,用它調用基礎類構造函數。因為基礎類構造函數可能會拋出 java.rmi.RemoteException,所以即使別無它用必須拋出java.rmi.RemoteException例外。
以下是遠程對象實現類的聲明:
[java] view plain
package test;
import java.math.BigInteger;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class FibImp extends UnicastRemoteObject implements Fib {
public FibImp() throws RemoteException {
super();
}
public int getFib(int n) throws RemoteException {
return n+2;
}

}
三、編寫伺服器類:
包含 main 方法的類可以是實現類自身,也可以完全是另一個類。下面通過RmiSampleServer 來創建一個遠程對象的實例,並通過java.rmi.registry.LocateRegistry類的createRegistry 方法從指定埠號啟動注冊服務程序,也可以通過執行 rmiregistry 命令啟動注冊服務程序,注冊服務程序的預設運行埠為 1099。必須將遠程對象名字綁定到對遠程對象的引用上: Naming.rebind("//localhost:8808/SAMPLE-SERVER" , Server);
以下是伺服器類的聲明:
[java] view plain
package test;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
public class FibonacciServer {
/**
* @param args
*/
public static void main(String[] args) {
try {
LocateRegistry.createRegistry(8804);
FibImp f = new FibImp();

// 注冊到 registry 中
Naming.rebind("//localhost:8804/SAMPLE-SERVER", f);
System.out.println("fib server ready");

} catch (RemoteException re) {
System.out.println("Exception in FibonacciImpl.main: " + re);
} catch (MalformedURLException e) {
System.out.println("MalformedURLException " + e);
}
}
}
四、編寫使用遠程服務的客戶機類:
客戶機類的主要功能有兩個,一是通過Naming.lookup方法來構造注冊服務程序 stub 程序實例,二是調用伺服器遠程對象上的遠程方法。
以下是客戶端類的聲明:
[java] view plain
package testClient;

import test.Fib;
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
public class FibClient {
/**
* @param args
*/
public static void main(String[] args) {
String url = "//localhost:8804/SAMPLE-SERVER";
try {

Fib calc = (Fib) Naming.lookup(url);
for (int i = 0; i < 10; ++i) {
int f = calc.getFib(i);
System.out.println(f);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
}

⑸ 遠程訪問伺服器的介面

區域網復介面主要是用於制遠程訪問伺服器和區域網進行連接,因區域網類型也是多種多樣的,所以這也就決定了遠程訪問伺服器的區域網介面類型也可能是多樣的。不同的網路有不同的介面類型,常見的乙太網介面主要有AUI、BNC和RJ-45介面,還有FDDI、ATM、光纖介面,這些網路都有相應的網路介面,下面是主要的幾種區域網介面。
(1)AUI埠
(2)RJ-45埠
(3)SC埠

⑹ Java如何通過URL調用遠程介面並讀取返回信

下面代碼可供你參考:
String ticket = "";//登錄憑證
String url_str = "http://www.sina.com.cn?ticket=";//獲取用戶認證的帳號URL
String ticket_url = url_str + ticket;
URL url = new URL(ticket_url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.connect();
int code = connection.getResponseCode();
if (code == 404) {

throw new Exception("認證無效,找不到此次認證的會話信息!");
}
if (code == 500) {
throw new Exception("認證伺服器發生內部錯誤!");
}
if (code != 200) {
throw new Exception("發生其它錯誤,認證伺服器返回 " + code);
}
InputStream is = connection.getInputStream();
byte[] response = new byte[is.available()];
is.read(response);
is.close();
if (response == null || response.length == 0) {
throw new Exception("認證無效,找不到此次認證的會話信息!");
}
String userId = new String(response, "GBK");
System.out.println(userId);

⑺ 如何使用httpclient遠程調用介面 獲取數據

java發一個http請求過去,帶上參數就可以了啊,跟我們在瀏覽器上訪問資源是一樣的 只是它返回的是json格式的數據而已
給你兩個方法吧:
public static String do_post(String url, List name_value_pair) throws IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httpost = new HttpPost(url);
httpost.setEntity(new UrlEncodedFormEntity(name_value_pair, StandardCharsets.UTF_8));
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
public static String do_get(String url) throws ClientProtocolException, IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}

⑻ 編寫servlet過濾器時,哪個介面用於調用過濾器鏈中下一個過濾器

void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)這個方法有3個參數,調用過濾器鏈中內的下一個容過濾器用的是第三個參數

filterChain.doFilter(request, response);

⑼ java遠程調用介面的原理和範例,謝謝

Java 遠程處理
Java遠程方法調用(RMI)提供了Java程序語言的遠程通訊功能,這種特性使客戶機上運行的程序可以調用遠程伺服器上的對象,使Java編程人員能夠在網路環境中分布操作。
創建一個簡單的Java分布式遠程方法調用程序可以按以下幾個步驟操作,

一、定義遠程介面:
在 Java 中,遠程對象是實現遠程介面的類的實例, 遠程介面聲明每個要遠程調用的方法。在需要創建一個遠程對象的時候,我們通過傳遞一個介面來隱藏基層的實施細節,客戶通過介面句柄發送消息即可。
遠程介面具有如下特點:
1) 遠程介面必須為public屬性。如果不這樣,除非客戶端與遠程介面在同一個包內,否則 當試圖裝入實現該遠程介面的遠程對象時,調用會得到錯誤結果。
2) 遠程介面必須擴展介面java.rmi.Remote。
3) 除與應用程序本身特定的例外之外,遠程介面中的每個方法都必須在自己的throws從句中 聲明java.rmi.RemoteException。(或 RemoteException 的父類)。
4) 作為參數或返回值傳遞的一個遠程對象(不管是直接,還是本地對象中嵌入)必須聲明為遠 程介面,而不應聲明為實施類。

下面是遠程介面的定義

[java] view plain
package test;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.math.BigInteger;

public interface Fib extends Remote {
public int getFib(int n) throws RemoteException;
// public BigInteger getFib(BigInteger n) throws RemoteException;
}

二、實現遠程介面:
遠程對象實現類必須擴展遠程對象java.rmi.UnicastRemoteObject類,並實現所定義的遠程介面。遠程對象的實現類中包含實現每個遠程介面所指定的遠程方法的代碼。這個類也可以含有附加的方法,但客戶只能使用遠程介面中的方法。因為客戶是指向介面的一個句柄,而不是它的哪個類。必須為遠程對象定義構造函數,即使只准備定義一個默認構造函數,用它調用基礎類構造函數。因為基礎類構造函數可能會拋出 java.rmi.RemoteException,所以即使別無它用必須拋出java.rmi.RemoteException例外。
以下是遠程對象實現類的聲明:

[java] view plain
package test;
import java.math.BigInteger;
import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class FibImp extends UnicastRemoteObject implements Fib {
public FibImp() throws RemoteException {
super();
}

public int getFib(int n) throws RemoteException {
return n+2;
}

}

三、編寫伺服器類:
包含 main 方法的類可以是實現類自身,也可以完全是另一個類。下面通過RmiSampleServer 來創建一個遠程對象的實例,並通過java.rmi.registry.LocateRegistry類的createRegistry 方法從指定埠號啟動注冊服務程序,也可以通過執行 rmiregistry 命令啟動注冊服務程序,注冊服務程序的預設運行埠為 1099。必須將遠程對象名字綁定到對遠程對象的引用上: Naming.rebind("//localhost:8808/SAMPLE-SERVER" , Server);
以下是伺服器類的聲明:

[java] view plain
package test;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
public class FibonacciServer {
/**
* @param args
*/
public static void main(String[] args) {
try {
LocateRegistry.createRegistry(8804);
FibImp f = new FibImp();

// 注冊到 registry 中
Naming.rebind("//localhost:8804/SAMPLE-SERVER", f);
System.out.println("fib server ready");

} catch (RemoteException re) {
System.out.println("Exception in FibonacciImpl.main: " + re);
} catch (MalformedURLException e) {
System.out.println("MalformedURLException " + e);
}
}
}

四、編寫使用遠程服務的客戶機類:
客戶機類的主要功能有兩個,一是通過Naming.lookup方法來構造注冊服務程序 stub 程序實例,二是調用伺服器遠程對象上的遠程方法。
以下是客戶端類的聲明:

[java] view plain
package testClient;

import test.Fib;
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
public class FibClient {
/**
* @param args
*/
public static void main(String[] args) {
String url = "//localhost:8804/SAMPLE-SERVER";
try {

Fib calc = (Fib) Naming.lookup(url);
for (int i = 0; i < 10; ++i) {
int f = calc.getFib(i);
System.out.println(f);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
}

閱讀全文

與過濾器遠程調用介面相關的資料

熱點內容
超濾反滲透雙膜 瀏覽:650
微型水反滲透凈水設備 瀏覽:362
國家規定污水處理耗能標准 瀏覽:525
多效蒸餾脫鹽 瀏覽:718
市政污水管道閉水實驗資料 瀏覽:595
海爾飲水機怎麼復位過濾棉 瀏覽:289
沼氣調控凈化器怎麼調節火的大小 瀏覽:203
污水做tp進水取多少錢 瀏覽:719
所有的數據輸入做過濾 瀏覽:434
廢水生物種類 瀏覽:728
湖北凈水器哪裡有賣 瀏覽:632
18年日產騏達的空氣濾芯怎麼拆 瀏覽:260
山西家用污水提升裝置 瀏覽:736
中央電視台文昌污水 瀏覽:432
廢水常規污染物 瀏覽:143
青海學校凈化器多少錢一台 瀏覽:128
電泳超濾膜瞬間高壓 瀏覽:778
活性污泥污水處理工藝的原理 瀏覽:927
水凈化器進化什麼 瀏覽:630
碘單質與四氯化碳蒸餾 瀏覽:562