接口只能用來繼承的,你應該寫一個類,并繼承這個接口,再實現(xiàn)這接口的所有成員

成都創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為豐臺企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,豐臺網(wǎng)站改版等技術(shù)服務。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
Java調(diào)用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調(diào)用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。
1、編寫代碼方式:
package?com.yudun.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服務地址";
//?創(chuàng)建?Service實例
Service?service?=?new?Service();???
//?通過Service實例創(chuàng)建Call的實例
Call?call?=?(Call)?service.createCall();
//將Web?Service的服務路徑加入到call實例之中.
call.setTargetEndpointAddress(?new?java.net.URL(endpoint)?);//為Call設(shè)置服務的位置
//?由于需要認證,故需要設(shè)置調(diào)用的SOAP頭信息。???
Name?headerName?=?new?PrefixedQName(?new?QName("發(fā)布的wsdl里的targetNamespace里的url",?"string_itemName")?);?
org.apache.axis.message.SOAPHeaderElement?header?=?new?SOAPHeaderElement(headerName);?
header.addTextNode(?"blablabla"?);?
call.addHeader(header);
//????SOAPHeaderElement?soapHeaderElement?=?new?SOAPHeaderElement("發(fā)布的wsdl里的targetNamespace里的url",?"SoapHeader");???
//????soapHeaderElement.setNamespaceURI("發(fā)布的wsdl里的targetNamespace里的url");???
//????try??
//????{???
//????????soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");???
//????}???
//????catch?(SOAPException?e)???
//????{???
//????????e.printStackTrace();???
//????}???
//????call.addHeader(soapHeaderElement);??
//調(diào)用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("",?"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("",?"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("",?"string"),?java.lang.String.class,?false,?false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(new?javax.xml.namespace.QName("",?"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("發(fā)布的wsdl里的targetNamespace里的url",?"Exception"),
"Exception",
new?javax.xml.namespace.QName("發(fā)布的wsdl里的targetNamespace里的url",?"Exception"),?
true
));
call.setOperation(?oper?);
call.setOperationName(new?javax.xml.namespace.QName("發(fā)布的wsdl里的targetNamespace里的url",?"opName"));
//調(diào)用Web?Service,傳入?yún)?shù)
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,選中搜索后的結(jié)果,點擊Next,在Service definition中輸入 WebService的發(fā)布地址,點擊Finish
這樣,WebService Client代碼已經(jīng)生成好了。
接下來寫一個Test類,在main函數(shù)中輸入如下代碼:
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實體類,implements了Serializable接口,讓serialversionUID自動生成方法:
1.點擊類旁邊的警告符號;
2.選擇Add generated serial version ID即可自動生成。
WebService CXF客戶端報 java.lang.RuntimeException: Cannot create a secure XMLInputFactory 異常,查了許多網(wǎng)絡關(guān)于該問題的解決辦法,很多都說缺少包問題,但問題是我的包都存在,我用的是apache-cxf-2.7.6,經(jīng)過不懈努力終于解決了,我的服務端用的是web project,客戶端用的是java project,客戶端jar包是引用其它地方的,后來建一個web project客戶端,把jar直接復制到project的lib目錄下就行了,jdk用的是1.7,客戶端依賴的接口用wsdl2java生成的。
那你直接用java寫這個接口 然后用myeclipse自動生成 服務器端 客戶端什么的
webservice 現(xiàn)在很方便的
網(wǎng)站題目:java自動生成接口代碼 java自定義接口
URL分享:http://www.chinadenli.net/article0/dooeiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務、企業(yè)建站、小程序開發(fā)、網(wǎng)站營銷、商城網(wǎng)站、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)