大家好,今天小編來為大家解答以下的問題,關(guān)于寫一個(gè)webservice接口,如何搭建webservice接口這個(gè)很多人還不知道,現(xiàn)在讓我們一起來看看吧!
c#怎么實(shí)現(xiàn)動(dòng)態(tài)調(diào)用webservice接口
你先把的WebServices的服務(wù)搭建在你的機(jī)電上,或是知道他們已有的Web地址.在程序里,添加Web引用,把這個(gè)WebServices地址添加進(jìn)來,在程序類庫里引用一下就可以,看到他接口里的方法了.
js怎么調(diào)用webservice
純js調(diào)用webservice接口舉例:
1、HelloWorld.htm(callsHelloWorldmethod):
2、GetAge.htm(callsGetAgemethod,takes3parameters):
3、GetDateTime.htm(returnscachedvalue):
怎么規(guī)范的開發(fā)webservice接口
以下是操作步驟:1、編寫服務(wù)代碼服務(wù)代碼提供了兩個(gè)函數(shù),分別為sayHello和sayHelloToPerson,在HelloService.java類中2、發(fā)布WebService要將上邊寫的HelloService類發(fā)布為WebService,需要先搭建Web應(yīng)用。下面是在Tomcat下使用Axis創(chuàng)建WebService服務(wù)的例子。3、在Tomcat下創(chuàng)建Web應(yīng)用在該例子中,在Tomcat下創(chuàng)建了一個(gè)contextpath為test_webservice的WEB應(yīng)用。(1)在Tomcat的webapps下創(chuàng)建如下文件系統(tǒng)test_webserviceWEB-INFlibClasses(2)在WEB-INF文件夾下創(chuàng)建web.xml文件,在web.xml中主要是配置axis。4、復(fù)制axis相關(guān)的jar文件將axis的相關(guān)jar文件復(fù)制到WEB-INF\lib文件夾下。這些文件包括:activation.jaraxis.jaraxis-ant.jaraxis-schema.jarcommons-discovery-0.2.jarcommons-logging-1.0.4.jarjaxrpc.jarlog4j-1.2.8.jarmailapi.jarsaaj.jarwsdl4j-1.5.1.jarxmlsec-1.3.0.jar5、測(cè)試發(fā)布的WEB應(yīng)用啟動(dòng)Tomcat服務(wù),打開IE瀏覽器,訪問http:host:port/test_webservice/services,如果看到如下界面就說明AXIS部署成功了。6、發(fā)布WebService發(fā)布WebService需要使用現(xiàn)有的AdminService來實(shí)現(xiàn),這里我寫了一個(gè)批處理文件來發(fā)布WebService,以后如果需要發(fā)布其他文件,只需要修改相應(yīng)的參數(shù)就可以了。(1)創(chuàng)建deploy.wsdd文件。(2)創(chuàng)建發(fā)布WebService服務(wù)的批處理文件deploywebservice.bat。其中E:\workspace\Libwebservice是存放axis對(duì)應(yīng)的jar文件的文件夾,現(xiàn)在將所有的jar文件都加入到此文件夾中。-l后的參數(shù)是本地要發(fā)布WebService的AdminService對(duì)應(yīng)的訪問地址。最后deploy.wsdd是對(duì)應(yīng)的配置文件名稱。(3)將deploy.wsdd文件和deploywebservice.bat文件復(fù)制到同一個(gè)文件夾下,執(zhí)行deploywebservice.bat批處理文件,就可以將deploy.wsdd中描述的Java類發(fā)布為WebService。發(fā)布完成之后再訪問http://host:port/test_webservice/services
怎么訪問webservice接口的方法
java調(diào)用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動(dòng)生成WebServiceClient代碼,利用其中的Proxy類進(jìn)行調(diào)用。理論上是一樣的,只不過用Eclipse自動(dòng)生成代碼省事些。1、編寫代碼方式:packagecom.yudun.test;importjava.rmi.RemoteException;importorg.apache.axis.client.Call;importorg.apache.axis.client.Service;importorg.apache.axis.message.PrefixedQName;importorg.apache.axis.message.SOAPHeaderElement;importcom.cezanne.golden.user.Exception;importcom.cezanne.golden.user.UserManagerServiceProxy;importjavax.xml.namespace.QName;importjava.net.MalformedURLException;importjavax.xml.rpc.ServiceException;importjavax.xml.soap.Name;importjavax.xml.soap.SOAPException;publicclasstestWebService{publicstaticStringgetResult()throwsServiceException,MalformedURLException,RemoteException,SOAPException{//標(biāo)識(shí)WebService的具體路徑Stringendpoint="WebService服務(wù)地址";//創(chuàng)建Service實(shí)例Serviceservice=newService();//通過Service實(shí)例創(chuàng)建Call的實(shí)例Callcall=(Call)service.createCall();//將WebService的服務(wù)路徑加入到call實(shí)例之中.call.setTargetEndpointAddress(newjava.net.URL(endpoint));//為Call設(shè)置服務(wù)的位置//由于需要認(rèn)證,故需要設(shè)置調(diào)用的SOAP頭信息。NameheaderName=newPrefixedQName(newQName("發(fā)布的wsdl里的targetNamespace里的url","string_itemName"));org.apache.axis.message.SOAPHeaderElementheader=newSOAPHeaderElement(headerName);header.addTextNode("blablabla");call.addHeader(header);//SOAPHeaderElementsoapHeaderElement=newSOAPHeaderElement("發(fā)布的wsdl里的targetNamespace里的url","SoapHeader");//soapHeaderElement.setNamespaceURI("發(fā)布的wsdl里的targetNamespace里的url");//try//{//soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");//}//catch(SOAPExceptione)//{//e.printStackTrace();//}//call.addHeader(soapHeaderElement);//調(diào)用WebService的方法org.apache.axis.description.OperationDescoper;org.apache.axis.description.ParameterDescparam;oper=neworg.apache.axis.description.OperationDesc();oper.setName("opName");param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg0"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("
http://www.w3.org/2001/XMLSchema
","string"),java.lang.String.class,false,false);param.setOmittable(true);oper.addParameter(param);param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg1"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema
","string"),java.lang.String.class,false,false);param.setOmittable(true);oper.addParameter(param);param=neworg.apache.axis.description.ParameterDesc(newjavax.xml.namespace.QName("","arg2"),org.apache.axis.description.ParameterDesc.IN,newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema
","string"),java.lang.String.class,false,false);param.setOmittable(true);oper.addParameter(param);oper.setReturnType(newjavax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema
","string"));oper.setReturnClass(java.lang.String.class);oper.setReturnQName(newjavax.xml.namespace.QName("","return"));oper.setStyle(org.apache.axis.constants.Style.WRAPPED);oper.setUse(org.apache.axis.constants.Use.LITERAL);oper.addFault(neworg.apache.axis.description.FaultDesc(newjavax.xml.namespace.QName("發(fā)布的wsdl里的targetNamespace里的url","Exception"),"Exception",newjavax.xml.namespace.QName("發(fā)布的wsdl里的targetNamespace里的url","Exception"),true));call.setOperation(oper);call.setOperationName(newjavax.xml.namespace.QName("發(fā)布的wsdl里的targetNamespace里的url","opName"));//調(diào)用WebService,傳入?yún)?shù)Stringres=(String)call.invoke(newObject[]("arg0","arg1"));System.out.println("===============");returnres;}/***@paramargs*/publicstaticvoidmain(String[]args){try{System.out.println(getResult());}catch(MalformedURLExceptione){e.printStackTrace();}catch(RemoteExceptione){e.printStackTrace();}catch(ServiceExceptione){e.printStackTrace();}catch(SOAPExceptione){e.printStackTrace();}}}2、利用Eclipse自動(dòng)生成WebServiceclient代碼就容易多了:(由于還不會(huì)發(fā)圖片,就用語言描述了,大家酬和看吧。。。)首先,newproject,選擇other,在輸入框中輸入WebServiceClient,選中搜索后的結(jié)果,點(diǎn)擊Next,在Servicedefinition中輸入WebService的發(fā)布地址,點(diǎn)擊Finish這樣,WebServiceClient代碼已經(jīng)生成好了。接下來寫一個(gè)Test類,在main函數(shù)中輸入如下代碼:Stringendpoint="服務(wù)器的WebService的地址";YourWebServiceNameProxyumsp=newYourWebServiceNameProxy(endpoint);try{StringresultStr=umsp.opMethod("arg0","arg1");System.out.println(resultStr);}catch(Exceptione){System.out.println("異常");e.printStackTrace();}catch(RemoteExceptione){System.out.println("RemoteException異常");e.printStackTrace();}API接口與webservice接口的區(qū)別
區(qū)別就是兩者意思是不一樣具體的不同如下
WebAPI:提供給不同客戶端(跨平臺(tái)客戶端)調(diào)用網(wǎng)頁的應(yīng)用程序編程接口。WebAPI,一般指基于HTTP協(xié)議的編程接口,接口一般定義為HTTP或HTTPS:請(qǐng)求方法、請(qǐng)求路徑、參數(shù)、響應(yīng)數(shù)據(jù)格式、響應(yīng)HTTPCode等。
webservice一般指WebService。WebService是一個(gè)平臺(tái)獨(dú)立的,低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開放的XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的交互操作的應(yīng)用程序。WebService技術(shù),能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。依據(jù)WebService規(guī)范實(shí)施的應(yīng)用之間,無論它們所使用的語言、平臺(tái)或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。WebService是自描述、自包含的可用網(wǎng)絡(luò)模塊,可以執(zhí)行具體的業(yè)務(wù)功能。WebService也很容易部署,因?yàn)樗鼈兓谝恍┏R?guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語言下的子集XML、HTTP。WebService減少了應(yīng)用接口的花費(fèi)。WebService為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一
OK,本文到此結(jié)束,希望對(duì)大家有所幫助。