Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从blackberry eclipse项目调用.NET web服务时出错_Java_.net_Blackberry_Web Services - Fatal编程技术网

Java 从blackberry eclipse项目调用.NET web服务时出错

Java 从blackberry eclipse项目调用.NET web服务时出错,java,.net,blackberry,web-services,Java,.net,Blackberry,Web Services,我似乎不知道我做错了什么。我只是想从我的BB应用程序中调用一个.NETWeb服务方法。当我调用一个不需要参数的方法时,我得到了一个有效的字符串响应,每个人都很高兴。但是,当我调用一个需要参数的方法(并且在invoke()调用中传递这些参数)时,我会得到相同的空响应(字符串和整数的默认值) 我正在调用的.net方法将只返回我传递给它的值。因此,如果我用parm1=“hello”和parm2=“123”调用方法“TestMe”,我应该得到的响应是hello。收到-->[parm1]您好[int1]1

我似乎不知道我做错了什么。我只是想从我的BB应用程序中调用一个.NETWeb服务方法。当我调用一个不需要参数的方法时,我得到了一个有效的字符串响应,每个人都很高兴。但是,当我调用一个需要参数的方法(并且在invoke()调用中传递这些参数)时,我会得到相同的空响应(字符串和整数的默认值)

我正在调用的.net方法将只返回我传递给它的值。因此,如果我用parm1=“hello”和parm2=“123”调用方法“TestMe”,我应该得到的响应是hello。收到-->[parm1]您好[int1]123。我可以通过firefox通过WSDL调用方法来验证这个响应

当我试图通过invoke()调用同一个方法时,我得到[parm1][int1]0

在我看来,.net方法似乎没有接收任何参数值,只是返回字符串和整数类型的默认值。那么,我是否需要更改.NETWeb服务以获得有效响应,或者我是否需要向java代码中添加其他内容(对于我的BB应用程序)

我使用eclipse作为编辑器,jdk1.16.0017作为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服务,我强烈建议您使用(或类似的东西)来查看请求和响应是什么样子的,以及当您从浏览器或其他web服务客户端尝试相同的事情时,它们是什么样子的

这样,您应该可以了解问题是与请求还是与响应有关,以及问题的性质


我也会从一个简单的Java控制台应用程序中尝试同样的代码——在黑莓加入之前让它在那里工作。

不幸的是,我无法下载任何东西或在我们的服务器上安装任何东西。我们完全被阻止下载任何东西,我没有任何盒子的管理员权限。另外,我正在一个简单的主类中测试这个。这与SoapRpc有关吗?我只需要远离它?你不能在你的开发盒上尝试吗?@sexitrainer:所以在你的开发盒上运行Wireshark,你仍然可以看到发生了什么。或者你甚至被阻止在你的开发设备上安装软件?@johnskeet:是的!!!!这就是我的困境。我可以访问这个盒子,但我没有在上面安装任何东西的权限。当然,我可能会要求某个人(有权限)在开发箱上安装wireshark,但这不太可能,因为任何类型的安装都必须经过审查委员会和一大堆繁文缛节。现在你明白我的困境了。