net調用java的webservice
⑴ .NET中怎麼調用java的WebService服務介面。
右鍵項目,添加web引用。把地址添加進來。並寫好你給它什麼命名空間
再在.cs代碼中using
你定義的命名空間引進來。就當是引入一個dll一樣用了
⑵ .net調用java webservice問題(Client.nosoapAction)
現在VS默認使用的.net framework3.5,使用的是AXIS2.0 標准,而你java端明顯使用的是AXIS1.0 ,所以會報錯,解決方法是添加web服務的時候點擊左下的高級設置,使用以前的framework2.0 生成舊版的web引用,或者JAVA端使用AXIS2.0標准進行編寫。
⑶ java做一個webservice服務被.NET程序調用
碰巧我前幾天做了個,首先把你java做好的webservice部署在伺服器中,先運行起來,然後把調用webservice的路徑配置到.net中就ok了,不知道你是不是這個意思,用到的是兩個服務
⑷ .NET中怎麼調用JAVA的WebService服務介面
以axis2來說,你需要對方提供AxisServiceStub類文件(就是wsdl文件),假入對方有一個ShowName的方法,我現在用axis2來調用,coding 如下
//初始化Sub類
AxisServiceStub stub = new AxisServiceStub();
//傳遞AxisServiceStub.ShowName對象,相關參數在這邊賦值。
AxisServiceStub.ShowName command = new AxisServiceStub.ShowName();
command.setName("Hello!");
//取得返回值
//String name = stub.showName(command).get_return();
System.out.println(stub.showName(command).get_return());
⑸ .net調用Java webservice
.net 有WebService 代理的生成工具。
選中項目下的引用右擊->添加服務引用->給定網址(能夠下載WSDL) 的地址
然後系統會自動生成WebService代理。
使用的時候就像使用本地類一樣就可以。
⑹ java 怎樣調用.net 寫的webservice
一. 使用axis1.x調用webservice方法
Axis的最常用版本:1.4和2.0版本。以下為1.4版本
核心代碼:
// webserviceURL
service_url = "http://vip.cxcod.com/PodApi/GetPodStr.asmx?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(service_url));
// 設置要調用的方法
// http://intelink.net/是wsdl中definitions根節點的targetNamespace屬性值
call.setOperationName(new QName("http://intelink.net/","GetStrByJobno"));
// 該方法需要的參數
call.addParameter("CustNo",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("passwd",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter("Jobno",
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
// 方法的返回值類型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
// call.setUseSOAPAction(true); //call.setSOAPActionURI("http://intelink.net/GetStrByJobno");
// 調用該方法, new Object[] { CustNo, passwd, Jobno}為參數列表
String xmlStr = call.invoke(new Object[] { CustNo, passwd, Jobno}).toString();
} catch (Exception e) {
e.printStackTrace();
}
JAVA用這種方式調用webservice,需要注意的地方:
1. 伺服器未能識別 HTTP 標頭 SOAPAction 的值:
症狀一:
Web Service + ASP.NET 應用程序部署到伺服器默認目錄中,在IE中用http://<伺服器地址>/<程序目錄名>/<默認啟動頁面名>發生「伺服器未能識別 HTTP 標頭 SOAPAction 的值」錯誤。
症狀二:
在Java平台上調用.NET Web Service的服務時,出現"伺服器未能識別 HTTP 標頭 SOAPAction 的值"。
症狀三:
在Java平台下調用.NET WEB Service,出現數據時有時無。
解決對策:
給.NET的WebService類(即.asmx文件下的類)添加屬性[SoapDocumentService(RoutingStyle=SoapServiceRoutingStyle.RequestElement)]
小知識:
什麼是SoapAction?它在WSDL中有何作用?
SOAPAction HTTP request header被用來標識SOAP HTTP請求的目的地,其值是個URI地址。SOAP發送並不限制格式、URI特徵或其必須可解析,那麼在這種情況下,發送一個HTTP SOAP請求時,其HTTP客戶端必須使用/指明SOAPAction HTTP request header。
SOAPAction header的內容可以被用在服務端,諸如:防火牆適當的過濾基於HTTP的SOAP請求消息等場景。SOAPAction header的值為空串("")表示SOAP消息的目的地由HTTP請求的URI標識;無值則表示沒有指定這條消息的目的地。
本人補充:
在.NET環境調用.NET WebService出現 「SOAPAction 值在 XML Web services 的所有方法中不唯一的錯誤」,也可以通過此法解決。
2. 為了Java能夠調用WebService的方法,所以。NETP寫的WebServiced的每個方法都要聲明為Rpc方法,即添加"[SoapRpcMethod.....]".
例如:[WebMethod]
[SoapRpcMethod(Use=SoapBindingUse.Literal,Action= http://tempuri.org/HelloWorld", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/")]
3. 對返回值、參數的處理上:
應盡量將webservice方法的返回值、參數都寫成字元串(String)不要使用復雜對象類型,這樣便於在網路上傳輸。避免了復雜對象類型的不易轉換問題。。。對於返回類型是字元串數組型的,可以設置返回類型為org.apache.axis.encoding.XMLType.SOAP_VECTOR或java.lang.String[].class.
二.利用xfire調用WebService
XFire是新一代的Java Web服務引擎,XFire使得在JavaEE應用中發布Web服務變得輕而易舉。和其他Web服務引擎相比,XFire的配置非常簡單,可以非常容易地和Spring集成,它使得Java開發人員終於可以獲得和.Net開發人員一樣的開發效率。
核心代碼:
Service service = new ObjectServiceFactory().create(IWebservice.class);
XFireProxyFactory factory =
new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String url= "http://localhost:8080/webservices/services/webservices";
IWebservice iw = (IWebservice) factory.create(service, url);
List list=iw.getTest();
出處:http://liyuandong.iteye.com/blog/567836
⑺ .NET 調用 JAVA 公開的一個Webservice 問題 soapException
1.使用http://10.35.250.72:5678/soap/imyhello在瀏覽器里看看能不能得到WSDL
2.本地WSDL如果與遠程一樣,那麼本地只是提供離線開發用,生成本地代理類(在分布式中也叫本地存根)
⑻ .NET 調用JAVE Webservice問題
以前遇到過類似的問題,可能是由於兩種語言協議有一定差別,C#添加Java的服務引用的時候會自動添加兩個,你自己在解決方案管理器里找找是不是?刪除其中一個引用就好了。
⑼ NET中怎麼調用JAVA的WebService服務介面
vs中有工具,通過添加web引用地址就能自動創建訪問client,並且創建了類對象,你通過類對象就能夠使用webservice了。
⑽ .net調用java web services
javabean在.net中就相當於一個實體類,在你調用webservice的時候會自動引用javabean的,然後你就可以像操作model層的類一樣了。list也是一樣的!你仔細看下wsdl就沒問題了。
因為webService是基於xml格式傳輸的,
所以兩種語言之間類型的轉換你就完全沒有必要擔心了。別拿service中定義的int型傳字元進去就好了,哈哈。 開個玩笑,這樣子編譯時是通不過的!