netwebservicejava
① java作為客戶端對.net webservice調用 Java報錯
是你調用的時候出錯了。。
② java 項目怎麼調用.net寫的webService,求源碼。
發布.net webservice得到wsdl地址:(你的)http://222.92.47.171:8003/SZDataExchange/SZDataExchange.asmx?wsdl
根據wsdl2java工具包生成對應java客戶端
publicstaticvoidmain(String[]args)throwsServiceException,RemoteException{
//TODOAuto-generatedmethodstub
Service1_Service1=newService1Locator();
Service1Soap_PortType_Service1Soap_PortType;
StringresultStr=null;
_Service1Soap_PortType=_Service1.getService1Soap();
resultStr=_Service1Soap_PortType.helloWorld("zybaby");
System.out.println(resultStr);
}
③ java接入.net webservice報400的錯誤
用來拋出io的錯誤,不僅僅是文件讀寫,還包括很多stream的讀寫,而且throws是用來放在函數定義的函數體前函數名後的,表示這個函數將會在出現異常的書後會拋出io異常,所以在以後的程序中調用這個函數的時候就必須用try和catch來捕獲異常,否則編譯會抱錯,這主要涉及到java的安全機制,可能規模小的程序不見的比if判斷更方便,可是在多人開發的規模比較大的程序開發過程中就能充分體會他的好處
④ .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());
⑤ Java訪問.net的webservice,訪問客戶給的可以,但是訪問免費的不行出現錯誤(400)Bad Request。要怎麼解決
排查下你和webservice之間的錯誤:
1、免費的那邊的webservice是否開啟了訪問限制,例如ip等限制。
2、免費的webservice的參數是否和你傳遞的相符。
3、網路是否可達,(ping下那邊的地址)
⑥ 如何使用java做webservice和java使用.net的webservice
做webService服務,可以使用Axis、XFire、CXF等框架的支持。
個人建議你使用CXF。
下載個cxf的jar包,進入到bin文件夾下,你會看到很多可執行的命令,ms-dos中進入到此路徑下,使用命令即可創建代碼。
以下為生成java源代碼的命令:
wsdl2java [-client](只生成客戶端的包)-p [com.zte.ebs.hellocxf.client] -d c:\XXXX(輸出目錄) d:\XXXX.wsdl(wsdl存在路徑)
如過你不想使用cxf,而使用其他的框架,則大同小異,到網上搜索一下即可。道理都是一樣的。
⑦ java怎樣調用.net寫的webservice
可以自己加批處理如下
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\source
set Package= com.msclient
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8987/Service1.asmx?WSDL
生成客戶端java類如下(CallService是我寫的調用測試類,可忽略)public static void main(String[] args) throws ServiceException, RemoteException {
// TODO Auto-generated method stub
Service1 _Service1 = new Service1Locator();
Service1Soap_PortType _Service1Soap_PortType;
String resultStr = null;
_Service1Soap_PortType = _Service1.getService1Soap();
resultStr = _Service1Soap_PortType.helloWorld("zybaby");
System.out.println(resultStr);
}
⑧ java調用.net的webservice,報415錯誤,是咋回事
你好,提問者:
幫你查了一下前人總結的答案:
1.服務是不是通的?
2.如果是配合聯調,可以抓取報文讓對方排查
3..net中415錯誤,一般不是.net的程序問題。5開頭的錯誤,一般都是.net程序的問題
4.HTTP 415 錯誤 – 不 支持的媒體類型(Unsupported media type)
1) 和請求中指定的媒體類型不一致,
2) 與該資源的當前數據不兼容,
3) 和請求中指定的 HTTP 方法不兼容。
如果對你有幫助,望採納!如果解決了請回復下,讓大家都了解下問題的原因!謝謝!
⑨ 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服務介面。
右鍵項目,添加web引用。把地址添加進來。並寫好你給它什麼命名空間
再在.cs代碼中using
你定義的命名空間引進來。就當是引入一個dll一樣用了