是我调用的时候错了 :( 这个错误: No parameters specified to the Call object! You must call addParameter() for all parameters if you have called setReturnType().于是我就把我调用setReturnType()的那一句删掉, 就好了, 进程等在那里了 :-0 可是我对这几个函数的作用还是不明白setReturnType(),addParameter(), 既然我直接这样调用invoke(new Object[] { str }) 就可以了,那那几个函数还要来干嘛呢?能告诉我吗? 我感到很疑惑
我用的就是Tomcat, 在什么地方?
赶快去下一个axis1.1rc2,可以帮你省很多麻烦,不过跟你问的问题无关。你的问题:
你运行Tomcat的时候,不会弹出一个Console window吗?应该就是输出到那里去了!
你仔细看看你的System.out.println();执行到了没有。况且要调试服务端,也不必如此呀!你直接在你的Service类里面写个main函数,然后,在里面就可以一个一个的对你暴露出的方法进行单元测试了。
还有关于你说的调试的问题, 我就是对方法本地测试过后觉得没问题 , 才配置服务的,可是他在作为服务运行的时候的执行的结果不是我所期望的 , 所以我很郁闷,想知道到底发生了什么事情, 我再自己试试看,实在不行我再麻烦你 :(
可是那个窗口里面还是没有任何东西输出 :(
可能在于,
你把它作为WINDOW的自启动服务了。
看看控制器-》管理工具-》SERVICE吧。
if(flag) return data;
Thread.sleep(100)
}就是这个样子但是我在运行的时候,他根本就不等待, 直接就返回了个空值, 我实在是不明白怎么回事 :( 所以我才要调试服务器端,看看到底它运行到了什么地方,
scope我设为了Application , 难道这个还需要调用call.setMaintanSession()吗?这句话我倒是没加
No parameters specified to the Call object! You must call addParameter() for all parameters if you have called setReturnType().于是我就把我调用setReturnType()的那一句删掉, 就好了, 进程等在那里了 :-0
可是我对这几个函数的作用还是不明白setReturnType(),addParameter(), 既然我直接这样调用invoke(new Object[] { str }) 就可以了,那那几个函数还要来干嘛呢?能告诉我吗? 我感到很疑惑
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING); 那么发出的soap请求参数如下:<testParam xsi:type="xsd:string">Hello!</testParam>并且invoke返回的不再是通用的Object类型,而直接就是你指定的类型。
也就是:
String ret = call.invoke();
有些Soap引擎服务端在返回值的时候,并不是自描述的,也就是说不是下面这样的:<result xsi:type="xsd:string">Hello!</result>而是:<result>Hello, I'm a string!</result>因此,如果让你的Client端的Soap引擎来序列化它呢?她都没有说自己是什么类型。这个时候只有程序员自己主动指定returnType的类型了,这也是setReturnType()存在的意义了。在这个角度上来说有setReturnType方法可以增强Axis的互操作性(也就是兼容性)。