[英]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.