簡體   English   中英

從Blackberry Eclipse項目錯誤中調用.NET Web服務

[英]Calling .NET web service from blackberry eclipse project error

我似乎無法弄清楚我在做什么錯。 我只是想從我的BB應用程序中調用.net Web服務方法。 當我調用不需要參數的方法時,我得到一個有效的字符串響應,每個人都很高興。 但是,當我調用需要參數的方法(並在invoke()調用中傳遞這些參數)時,會得到相同的null響應(字符串和整數的默認值)。

我正在調用的.net方法將僅返回我傳遞給它的值。 因此,如果我用parm1 =“ hello”和parm2 =“ 123”調用方法“ TestMe”,我應該得到的響應是Hello。 收到----> [parm1]你好[int1]123。我可以通過通過Firefox通過WSDL調用該方法來驗證此響應。

當我嘗試通過invoke()調用調用同一方法時,我得到[parm1] [int1] 0。

在我看來,.net方法似乎沒有接收任何參數值,而只是返回字符串和整數類型的默認值。 因此,是否需要更改為.net Web服務以獲得有效的響應,還是需要向Java代碼中添加其他內容(對於BB應用程序)?

我使用eclipse作為編輯器,使用jdk1.16.0_017作為JRE

導入org.apache.axis.AxisFault; 導入org.apache.axis.client.Call; 導入org.apache.axis.client.Service;

String endpoint = "http://[SERVER]/wsBB/clsMyFunctions.asmx?WSDL";
String methodName = "TestMe";
String actionURI = "http://www.blahblahblah.com/TestMe";

 // set a SOAP call
 try {
   Service service = new Service();
   Call call = (Call) service.createCall();
   call.setTargetEndpointAddress( new java.net.URL( endpoint ) );
   call.setUseSOAPAction(true);
   call.setSOAPActionURI(actionURI);            
   call.setOperation(methodName);
   String ret = (String) call.invoke( new Object[]{"Hello!","1234"} );

   System.out.println("Sent 'Hellooooooooooo!', got '" + ret + "'"); 
 }
 catch( AxisFault af ) {
   System.out.println("dump: "+ af.dumpToString());
 }
 catch(Exception e)
 {
  System.out.println("EXCPETION: "+ e.toString());
 }

假設您控制着Web服務,我強烈建議您使用Wireshark (或類似工具)查看請求和響應的外觀-以及從瀏覽器嘗試相同操作時的外觀和效果,或者來自另一個Web服務客戶端。

這樣,您應該可以知道問題出在請求還是響應以及問題的性質。

我還將嘗試通過一個簡單的Java控制台應用程序執行相同的代碼-在涉及Blackberry之前使其在此處運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM