導航:首頁 > 編程語言 > java的介面調用方式

java的介面調用方式

發布時間:2023-08-27 02:24:23

java中介面直接調用方法

在另一個類中的service的類型是介面service,但構造是用serviceImpl的構造構造函數構造的,你查看下另一個類的代碼,此外,service也可以是由spring構造注入的,看下spring的配置文件或者注釋確認下

㈡ java類調用介面中的方法

你要理解介面的作用。介面提供了一種規范,就像現實中,USB介面是一種介面一樣,但是介面一定要有一個具體的實現,比如你的U盤,充電寶等等。相同的介面可以「保證」正常的調用,而不用知道實現這個介面的類具體是個什麼東西。當你把USB介面的設備插在U口上時,其實你並不太關心這些設備內部到底有什麼不同。
面向對象提出介面的概念,就是為了達到這個目的。如果有三個類,都實現了某一介面,它你的代碼調用它們的時候,你不用關心這三個類都有哪些不同,你只關心它們相同的部分,就是介面所「規定」的那些方法,它們肯定要實現的,但具體的實現一定是在各自的類定義里。所以你在看代碼的時候,要看介面方法的具體實現,要在實現介面的類里去看,而不是看介面本身。不知道這樣說,你清楚了沒有。

㈢ JAVA怎麼調用介面

String sendPost(String jsonStr, String path)x0dx0a throws IOException {x0dx0a byte[] data = jsonStr.getBytes();x0dx0a java.net.URL url = new java.net.URL(path);x0dx0a java.net.HttpURLConnection conn = x0dx0a (java.net.HttpURLConnection) url.openConnection();x0dx0a conn.setRequestMethod("POST");x0dx0a conn.setConnectTimeout(5 * 1000);// 設置連接超時時間為5秒 x0dx0a conn.setReadTimeout(20 * 1000);// 設置讀取超時時間為20秒 x0dx0a // 使用 URL 連接進行輸出,則將 DoOutput標志設置為 truex0dx0a conn.setDoOutput(true);x0dx0a x0dx0a conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");x0dx0a //conn.setRequestProperty("Content-Encoding","gzip");x0dx0a conn.setRequestProperty("Content-Length", String.valueOf(data.length));x0dx0a OutputStream outStream = conn.getOutputStream();// 返回寫入到此連接的輸出流x0dx0a outStream.write(data);x0dx0a outStream.close();//關閉流x0dx0a String msg = "";// 保存調用http服務後的響應信息x0dx0a // 如果請求響應頌旅碼是200,則表示成功x0dx0a if (conn.getResponseCode() == 200) {x0dx0a // HTTP服務端返回的編碼坦櫻陪是UTF-8,故必須設置為UTF-8,保持編碼統一,否則會出現中文亂碼x0dx0a BufferedReader in = new BufferedReader(new InputStreamReader(x0dx0a (InputStream) conn.getInputStream(), "UTF-8"));x0dx0a msg = in.readLine();x0dx0a in.close();x0dx0a }x0dx0a conn.disconnect();// 斷開連接讓蠢x0dx0a return msg;x0dx0a }

㈣ java如何調用webservice介面

Java調用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。
1、編寫代碼方式:
package com.yun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;

public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
{
//標識Web Service的具體路徑
String endpoint = "WebService服務地址";
// 創建 Service實例
Service service = new Service();
// 通過Service實例創建Call的實例
Call call = (Call) service.createCall();
//將Web Service的服務路徑加入到call實例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設置服務的位置
// 由於需要認證,故需要設置調用的SOAP頭信息。
Name headerName = new PrefixedQName( new QName("發布的wsdl里的targetNamespace里的url", "string_itemName") );
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode( "blablabla" );
call.addHeader(header);

// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("發布的wsdl里的targetNamespace里的url", "SoapHeader");
// soapHeaderElement.setNamespaceURI("發布的wsdl里的targetNamespace里的url");
// try
// {
// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//調用Web Service的方法
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("opName");
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
oper.setReturnClass(java.lang.String.class);
oper.setReturnQName(new javax.xml.namespace.QName("", "return"));
oper.setStyle(org.apache.axis.constants.Style.WRAPPED);
oper.setUse(org.apache.axis.constants.Use.LITERAL);
oper.addFault(new org.apache.axis.description.FaultDesc(
new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "Exception"),
"Exception",
new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "Exception"),
true
));
call.setOperation( oper );
call.setOperationName(new javax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url", "opName"));
//調用Web Service,傳入參數
String res = ( String ) call.invoke( new Object[]("arg0","arg1"));
System.out.println("===============");
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
try {
System.out.println(getResult());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (ServiceException e) {
e.printStackTrace();
} catch (SOAPException e) {
e.printStackTrace();
}
}
}

2、利用Eclipse自動生成WebService client代碼就容易多了:(由於還不會發圖片,就用語言描述了,大家酬和看吧。。。)
首先,new project,選擇other,在輸入框中輸入Web Service Client,選中搜索後的結果,點擊Next,在Service definition中輸入 WebService的發布地址,點擊Finish
這樣,WebService Client代碼已經生成好了。
接下來寫一個Test類,在main函數中輸入如下代碼:

String endpoint = "伺服器的WebService的地址";
YourWebServiceNameProxy umsp = new YourWebServiceNameProxy (endpoint);
try {
String resultStr = umsp.opMethod("arg0","arg1");
System.out.println(resultStr);
} catch (Exception e) {
System.out.println("異常");
e.printStackTrace();
} catch (RemoteException e) {
System.out.println("RemoteException異常");
e.printStackTrace();
}
如果還有疑問的話還有視頻,如果對你有幫助請採納!

㈤ java寫的介面怎麼調用

訪問形式如下例子:

//介面
publicinterfaceLoggerUtil{

//得到Logger,用於列印日誌
Loggerlogger=Logger.getLogger(LoggerUtil.class);
}

@RequestMapping("/delete.do")
publicStringdelete(Studentsstudents){

try{
stuService.delete(students);
}catch(Exceptione){

//介面的調用方式(直接調用)
LoggerUtil.logger.error(e.getMessage());
}
return"redirect:selectAll.do";
}

㈥ 怎麼用java調用微信支付介面

java調用微信支付介面方法:x0d=newRequestHandler(super.getRequest(),super.getResponse());x0dx0ax0dx0a//獲取token//兩小時內有效,兩小時後重新獲取x0dx0ax0dx0aToken=requestHandler.GetToken();x0dx0ax0dx0a//更新token到應用中x0dx0ax0dx0arequestHandler.getTokenReal();x0dx0ax0dx0aSystem.out.println("微信支付獲取token=======================:"+Token);x0dx0ax0dx0ax0dx0ax0dx0a//requestHandler初始化x0dx0ax0dx0arequestHandler.init();x0dx0ax0dx0arequestHandler.init(appid,appsecret,appkey,partnerkey,key);x0dx0ax0dx0ax0dx0ax0dx0a//--------------------------------本地系統生成訂單-------------------------------------x0dx0ax0dx0a//設置package訂單參數x0dx0ax0dx0aSortedMappackageParams=newTreeMap();x0dx0ax0dx0apackageParams.put("bank_type","WX");//支付類型x0dx0ax0dx0apackageParams.put("body","xxxx");//商品描述x0dx0ax0dx0apackageParams.put("fee_type","1");//銀行幣種x0dx0ax0dx0apackageParams.put("input_charset","UTF-8");//字元集x0dx0ax0dx0apackageParams.put("notify_url","http://xxxx.com/xxxx/wxcallback");//通知地址這里的通知地址使用外網地址測試,注意80埠是否打開。x0dx0ax0dx0apackageParams.put("out_trade_no",no);//商戶訂單號x0dx0ax0dx0apackageParams.put("partner",partenerid);//設置商戶號x0dx0ax0dx0apackageParams.put("spbill_create_ip",super.getRequest().getRemoteHost());//訂單生成的機器IP,指用戶瀏覽器端IPx0dx0ax0dx0apackageParams.put("total_fee",String.valueOf(rstotal));//商品總金額,以分為單位x0dx0ax0dx0ax0dx0ax0dx0a//設置支付參數x0dx0ax0dx0aSortedMapsignParams=newTreeMap();x0dx0ax0dx0asignParams.put("appid",appid);x0dx0ax0dx0asignParams.put("noncestr",noncestr);x0dx0ax0dx0asignParams.put("traceid",PropertiesUtils.getOrderNO());x0dx0ax0dx0asignParams.put("timestamp",timestamp);x0dx0ax0dx0asignParams.put("package",packageValue);x0dx0ax0dx0asignParams.put("appkey",this.appkey);x0dx0ax0dx0ax0dx0ax0dx0a//生成支付簽名,要採用URLENCODER的原始值進行SHA1演算法!x0dx0ax0dx0aStringsign="";x0dx0ax0dx0atry{x0dx0ax0dx0asign=Sha1Util.createSHA1Sign(signParams);x0dx0ax0dx0a}catch(Exceptione){x0dx0ax0dx0ae.printStackTrace();x0dx0ax0dx0a}x0dx0ax0dx0ax0dx0ax0dx0a//增加非參與簽名的額外參數x0dx0ax0dx0asignParams.put("sign_method","sha1");x0dx0ax0dx0asignParams.put("app_signature",sign);//api支付拼包結束------------------------------------x0dx0ax0dx0ax0dx0ax0dx0a//獲取=requestHandler.sendPrepay(signParams);x0dx0ax0dx0aSystem.out.println("prepayid:"+prepayid);x0dx0ax0dx0a//--------------------------------生成完成---------------------------------------------x0dx0ax0dx0ax0dx0ax0dx0a//生成預付快訂單完成,返回給android,ios掉起微信所需要的參數。x0dx0ax0dx0aSortedMappayParams=newTreeMap();x0dx0ax0dx0apayParams.put("appid",appid);x0dx0ax0dx0apayParams.put("noncestr",noncestr);x0dx0ax0dx0apayParams.put("package","Sign=WXPay");x0dx0ax0dx0apayParams.put("partnerid",partenerid);x0dx0ax0dx0apayParams.put("prepayid",prepayid);x0dx0ax0dx0apayParams.put("appkey",this.appkey);x0dx0ax0dx0a//這里除1000是因為參數長度限制。x0dx0ax0dx0ainttime=(int)(System.currentTimeMillis()/1000);x0dx0ax0dx0apayParams.put("timestamp",String.valueOf(time));.out.println("timestamp:"+time);x0dx0ax0dx0ax0dx0ax0dx0a//簽名x0dx0ax0dx0aStringpaysign="";x0dx0ax0dx0atry{x0dx0ax0dx0apaysign=Sha1Util.createSHA1Sign(payParams);x0dx0ax0dx0a}catch(Exceptione){x0dx0ax0dx0ae.printStackTrace();x0dx0ax0dx0a}x0dx0ax0dx0apayParams.put("sign",paysign);x0dx0ax0dx0ax0dx0ax0dx0a//拼json數據返回給客戶端=newBasicDBObject();x0dx0ax0dx0abackObject.put("appid",appid);x0dx0ax0dx0abackObject.put("noncestr",payParams.get("noncestr"));x0dx0ax0dx0abackObject.put("package","Sign=WXPay");x0dx0ax0dx0abackObject.put("partnerid",payParams.get("partnerid"));x0dx0ax0dx0abackObject.put("prepayid",payParams.get("prepayid"));x0dx0ax0dx0abackObject.put("appkey",this.appkey);x0dx0ax0dx0abackObject.put("timestamp",payParams.get("timestamp"));x0dx0ax0dx0abackObject.put("sign",payParams.get("sign"));=dataObject.toString();x0dx0ax0dx0aSystem.out.println("backstr:"+backstr);;x0dx0ax0dx0ax0dx0ax0dx0a====================到此為止,預付款訂單已生成,並且已返回客戶端====================x0dx0ax0dx0ax0dx0ax0dx0a//坐等微信伺服器通知,通知的地址就是生成預付款訂單的notify_=newResponseHandler(request,response);x0dx0ax0dx0aresHandler.setKey(partnerkey);x0dx0ax0dx0a//創建請求對象x0dx0ax0dx0a//RequestHandlerqueryReq=newRequestHandler(request,response);x0dx0ax0dx0a//queryReq.init();x0dx0ax0dx0aif(resHandler.isTenpaySign()==true){x0dx0ax0dx0a//商戶訂單號x0dx0ax0dx0aStringout_trade_no=resHandler.getParameter("out_trade_no");x0dx0ax0dx0aSystem.out.println("out_trade_no:"+out_trade_no);x0dx0ax0dx0a//財付通訂單號x0dx0ax0dx0aStringtransaction_id=resHandler.getParameter("transaction_id");x0dx0ax0dx0aSystem.out.println("transaction_id:"+transaction_id);x0dx0ax0dx0a//金額,以分為單位x0dx0ax0dx0aStringtotal_fee=resHandler.getParameter("total_fee");x0dx0ax0dx0a//如果有使用折扣券,discount有值,total_fee+discount=原請求的total_feex0dx0ax0dx0aStringdiscount=resHandler.getParameter("discount");x0dx0ax0dx0a//支付結果x0dx0ax0dx0aStringtrade_state=resHandler.getParameter("trade_state");x0dx0ax0dx0ax0dx0ax0dx0a//判斷簽名及結果x0dx0ax0dx0aif("0".equals(trade_state)){x0dx0ax0dx0a//------------------------------x0dx0ax0dx0a//即時到賬處理業務開始x0dx0ax0dx0a//------------------------------.out.println("----------------業務邏輯執行-----------------");x0dx0ax0dx0ax0dx0ax0dx0a//——請根據您的業務邏輯來編寫程序(以上代碼僅作參考)——x0dx0ax0dx0aSystem.out.println("----------------業務邏輯執行完畢-----------------");x0dx0ax0dx0aSystem.out.println("success");//請不要修改或刪除.out.println("即時到賬支付成功");x0dx0ax0dx0a//給財付通系統發送成功信息,財付通系統收到此結果後不再進行後續通知x0dx0ax0dx0aresHandler.sendToCFT("success");x0dx0ax0dx0ax0dx0ax0dx0a//給微信伺服器返回success否則30分鍾通知8次x0dx0ax0dx0areturn"success";x0dx0ax0dx0a}else{x0dx0ax0dx0aSystem.out.println("通知簽名驗證失敗");x0dx0ax0dx0aresHandler.sendToCFT("fail");x0dx0ax0dx0aresponse.setCharacterEncoding("utf-8");x0dx0ax0dx0a}x0dx0ax0dx0a}else{x0dx0ax0dx0aSystem.out.println("fail-Md5failed");

閱讀全文

與java的介面調用方式相關的資料

熱點內容
普信app為什麼用不了 瀏覽:252
linux查找rpm包 瀏覽:114
怎麼把安卓手機繁體字改為現代字 瀏覽:896
pdf簽名如何刪除 瀏覽:410
按摩解壓腿部足部 瀏覽:293
app切圖用什麼軟體 瀏覽:5
訂購命令英語 瀏覽:661
java正則網址 瀏覽:779
程序員上班可不可以自學 瀏覽:428
空調壓縮機排空氣視頻 瀏覽:285
centos72nginxphp 瀏覽:186
游戲平台用什麼伺服器好 瀏覽:754
保密櫃里的圖片是加密文件嗎 瀏覽:911
php判斷最後一個字元 瀏覽:637
pdf腦區 瀏覽:635
at命令已棄用 瀏覽:492
買點賣出指標源碼 瀏覽:614
36位單片機 瀏覽:431
英雄聯盟山東伺服器地址 瀏覽:214
sd伺服器什麼意思 瀏覽:621