通过Axis2调用Webservice是否只能传递string型的参数?
按照下面的方式传递参数,希望服务器端做一个1+2的加法,然后返回3。但服务器端收到的数据总是string型的,返回值是一个很小的负数。这是什么原因?public static void main(String[] args) {
try {
RPCServiceClient rpcClient = new RPCServiceClient();
Options options=rpcClient.getOptions();
options.setTo(new EndpointReference("http://localhost:9090/AddService"));
Object[] objects = new Object[] { 1,2 };
Class<?>[] classes = new Class[] { string.class };
QName qname = new QName("http://web.sdl.com/", "add");
int result = (int) rpcClient.invokeBlocking(qname, objects, classes)[0];
System.out.println(result);
} catch (AxisFault ex) {
Logger.getLogger(JavaApplication5.class.getName()).log(Level.SEVERE, null, ex);
}
}
按照下面的方式传递参数,希望服务器端做一个1+2的加法,然后返回3。但服务器端收到的数据总是string型的,返回值是一个很小的负数。这是什么原因?public static void main(String[] args) {
try {
RPCServiceClient rpcClient = new RPCServiceClient();
Options options=rpcClient.getOptions();
options.setTo(new EndpointReference("http://localhost:9090/AddService"));
Object[] objects = new Object[] { 1,2 };
Class<?>[] classes = new Class[] { string.class };
QName qname = new QName("http://web.sdl.com/", "add");
int result = (int) rpcClient.invokeBlocking(qname, objects, classes)[0];
System.out.println(result);
} catch (AxisFault ex) {
Logger.getLogger(JavaApplication5.class.getName()).log(Level.SEVERE, null, ex);
}
}
解决方案 »
- 后台时间计算问题
- js 关于encodeURI编码问题,急!(有用到JQuery做ajax处理,程序是java开发的)
- jsp页面遍历数据慢,第一次加载图片不显示
- JSP中集合如何传递
- 初学Struts2.0的问题~请教各位大侠~
- java命令问题请教?
- http://localhost:8080无法显示但http://localhost:8080/aa/My.jsp可以显示是怎么回事啊?
- 表单提交的一个奇怪现象
- 类似csdn页面中这样的导航条怎么做?
- spring3.2.4整合quartz的时候发现问题,spring源码普通类继承接口而不是实现接口,求解?
- JSP获取不到session是怎么回事?
- 关于SSH框架的Spring3和struts2的问题!
int型一般需要封装一层,作为一个对象传送。比如LZ这边的例子,建议将返回类型int改为自定义的MyInteger类型,里面只有一个int value,这样解析MyInteger封装类会好些。
如果我想传2个int,该如何修改呢?
Class<?>[] classes = new Class[] { int.class };
是这样吗?
如果我想传2个int,该如何修改呢?
Class<?>[] classes = new Class[] { int.class };
是这样吗? Class<?>[] classes = new Class[] { int.class }; 改Class<?>[] classes = new Class[] { Integer.class };
如果我想传2个int,该如何修改呢?
Class<?>[] classes = new Class[] { int.class };
是这样吗? Class<?>[] classes = new Class[] { int.class }; 改Class<?>[] classes = new Class[] { Integer.class }; 这个方法不行啊!
如果我想传2个int,该如何修改呢?
Class<?>[] classes = new Class[] { int.class };
是这样吗? Class<?>[] classes = new Class[] { int.class }; 改Class<?>[] classes = new Class[] { Integer.class }; 这个方法不行啊!
你可以自己定义一个对象啊,对象里有两个int属性,传递的参数就是你自己定义的对象。new Class[]{Add.class};class Add{
private Integer a;
private Integer b;
}
public float plus(float x, float y) {
return x + y;
}
客户端返回类型也改下:
Class[] classes = new Class[] { float.class };