當前位置:首頁 » 編程語言 » c調用javawebservice

c調用javawebservice

發布時間: 2023-01-21 15:43:33

⑴ c#調用java webservice時,如何傳byte[]類型的參數

你可以就傳byte數組試一下,byte是按補碼存儲的,如果有轉換,是可以得到正確的值的。

⑵ JAVA調用C語言發布的webservice介面

Java調用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。
1、編寫代碼方式:

packagecom.yun.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
{
//標識WebService的具體路徑
Stringendpoint="WebService服務地址";
//創建Service實例
Serviceservice=newService();
//通過Service實例創建Call的實例
Callcall=(Call)service.createCall();
//將WebService的服務路徑加入到call實例之中.
call.setTargetEndpointAddress(newjava.net.URL(endpoint));//為Call設置服務的位置
//由於需要認證,故需要設置調用的SOAP頭信息。
NameheaderName=newPrefixedQName(newQName("發布的wsdl里的targetNamespace里的url","string_itemName"));
org.apache.axis.message.SOAPHeaderElementheader=newSOAPHeaderElement(headerName);
header.addTextNode("blablabla");
call.addHeader(header);

//=newSOAPHeaderElement("發布的wsdl里的targetNamespace里的url","SoapHeader");
//soapHeaderElement.setNamespaceURI("發布的wsdl里的targetNamespace里的url");
//try
//{
//soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
//}
//catch(SOAPExceptione)
//{
//e.printStackTrace();
//}
//call.addHeader(soapHeaderElement);
//調用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(","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(","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(","string"),java.lang.String.class,false,false);
param.setOmittable(true);
oper.addParameter(param);
oper.setReturnType(newjavax.xml.namespace.QName(","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("發布的wsdl里的targetNamespace里的url","Exception"),
"Exception",
newjavax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url","Exception"),
true
));
call.setOperation(oper);
call.setOperationName(newjavax.xml.namespace.QName("發布的wsdl里的targetNamespace里的url","opName"));
//調用WebService,傳入參數
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自動生成WebService client代碼就容易多了:
首先,new project,選擇other,在輸入框中輸入Web Service Client,選中搜索後的結果,點擊Next,在Service definition中輸入 WebService的發布地址,點擊Finish
這樣,WebService Client代碼已經生成好了。
接下來寫一個Test類,在main函數中輸入如下代碼:

Stringendpoint="伺服器的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();
}

⑶ C# 調用Java的WebService(返回json格式數據),老是返回null, 求解!

按wsdl的描述:

<wsdl:operationname="getEAMObjects"parameterOrder="objectNamemobileWhereSQL">

而getEAMObjects(你問題中的缺少s)返回的值的內容是通過getEAMObjectsResponse()實現的,在XML中的描述如下:

<wsdl:message name="getEAMObjectsResponse">
<wsdl:part name="getEAMObjectsReturn" type="xsd:string"/>
</wsdl:message>

可以看出:返回的string(也行是Json串)而不是Json對象。

所以,你在調用後,需要你將得到的字元串轉換成對象!!

⑷ c#調用java webservice怎麼返回xml

這要取決於這個webservice返回的數據類型吧,如果是單純的string數據,你們將接收到數據寫入一個空的xml中,如果webservice本身返回回來的就是xml格式,你可以這么接收
XmlDocument xml = newXmlDocument();

xml.LoadXml(XmlNode.OuterXml) //XmlNode---為webservice返回xml的函數

⑸ C#如何訪問java介面

C#調用Java實現的WebService介面的步驟:
方法一:在項目中添加webservice引用,通過向導即能完成
方法二:為方便使用期間使用如下的兩個命令來將java的webservice描述地址最終編譯成一個動態庫使用
1、生成類文件
wsdl.exe /l:cs /n:NWS /out:C:/NWS.cs http://***.***.**.**/WebSite1/Service?wsdl
2、將類文件編譯成動態庫
csc /target:library /out:"c:\NWS.dll" c:\NWS.cs
後面的使用就是一樣的了
不過這里注意兩個問題:
(1)描述地址最後的參數?wsdl有時候不可或缺,最好加上,因為你最終要編譯的就是這個wsdl文件。但如果是本地的wsdl文件的話,忽略此問題。
(2)wsdl.exe是微軟VS中提供的一個工具,在VS命令好中可以直接調用出來 這里要記住/n:TestWS也即/namespace:TestWS中你自行定義的一個命名空間TestWS ,這個在你後續調用java的webservice提供的方法的時候會使用到。

⑹ c# 可以用httpclient調用java開發的webservice嗎

Webservice是標準的。你可以在.NET這邊,使用原生的http請求(HttpWebRequest),將服務者提供的soap消息格式做參數替換,然後當作http協議的實體內容發送到webservice所寄存的伺服器上,然後WS會根據soap消息中參數,做出響應。你在客戶端接收響應消息,不就好了?
當然,你也可以在.NET端去動態調用,根據WSDL文件描述,自己在.NET這邊生成服務代理類,手動調用編譯器去生成,然後用反射的方式去調用WS提供的webmethod。

⑺ C#調用java webservice服務

用VS自帶的工具wsdl不行嗎?
http://blog.csdn.net/wanderocn/article/details/6672370

⑻ C# 調用java webservice 介面

C#調用WEBSERVICE
只要在項目中添加WEBSERVICE引用就行了.
輸入網址.很簡單的

document對象
序列化 和 反序列化
JAVA C# 那個參數都用文本傳遞接受

⑼ c# 調用java webservice 出現客戶端發現響應內容類型為UTF-8,但應為text/xml

UTF-8是編碼格式,意思就是說,簡單的理解就是你這個是中文呢,還是西文呢,還是日文呢。

text/xml 簡單的說,告訴你我給你的東西是一個xml呢,還是一個mp3呢,還是一個doc呢。

不矛盾的

熱點內容
solidworkspcb伺服器地址 發布:2025-07-18 22:50:35 瀏覽:815
怎麼在堆疊交換機里配置vlan 發布:2025-07-18 22:42:35 瀏覽:623
java調用別人的介面 發布:2025-07-18 22:37:35 瀏覽:433
伺服器四個節點如何聯網 發布:2025-07-18 22:36:02 瀏覽:271
華強北什麼地方休安卓手機 發布:2025-07-18 22:24:56 瀏覽:735
資料庫的根本目標 發布:2025-07-18 21:37:50 瀏覽:938
壓縮機的流速 發布:2025-07-18 21:37:40 瀏覽:407
三星怎麼取消手機密碼 發布:2025-07-18 21:33:50 瀏覽:630
安卓手機耳機如何彈窗顯示電量 發布:2025-07-18 21:20:53 瀏覽:60
雲伺服器搭建需要什麼工具 發布:2025-07-18 20:51:08 瀏覽:322