我正在为Web服务开发一个java客户端。
我的网络服务中有这个方法:
@WebMethod(operationName = "test")
public Integer test(@WebParam(name = "number")
int number) {
return number;
}
我的客户端看起来像这样
public static void main(String[] args) {
try {
String BODY_NAMESPACE_VALUE = /namespace url/;
QName port = new QName(/Service name/);
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new QName(/Service name/));
Call call = service.createCall(port);
call.setTargetEndpointAddress(/WSDL location/);
call.setReturnType(XMLType.XSD_INT);
call.setOperationName(new QName(BODY_NAMESPACE_VALUE, "test"));
call.addParameter("number", XMLType.XSD_INT, ParameterMode.IN);
Integer[] i = new Integer[1];
i[0] = new Integer(20);
System.out.println("test :"+call.invoke(i));
} catch (Exception ex) {
ex.printStackTrace();
}
}
我从我的Java客户端的Web服务获得了返回值,因为我尝试从Web服务获取常量。但是,在上面的情况下,我试图从客户端发送20到Web服务并接收它。但是我收到了0.有谁知道为什么从客户端向Web服务发送参数不起作用?
谢谢和问候, Krt_Malta
答案 0 :(得分:1)
我不知道这是否是答案,但看起来好像你正在向web服务发送一个整数数组
Integer[] i;
只需要一个int
。