最近在调试接口时发现这么一个问题,用cxf发布的接口使用soupUI测试完全没有问题,可是用代码调用接口时服务端接收到的实体属性却为null:
1.使用soupUI调接口:
服务端获取对象
2.使用代码调接口:
try {
//http://133.64.1.110:9100/accountWebservice/ws/account?wsdl
String endpoint ="http://133.64.1.110:9100/accountWebservice/ws/account?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint));
call.setOperationName(new QName("http://impl.service.inspur.com/", "addAccount"));
QName qname = new QName("Request");
call.addParameter(qname, XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
Object[] obj = new Object[] { "<Request>" +
"<ClientIp>133.64.240.66</ClientIp>" +
"<UserIp>10.10.10.4</UserIp>" +
"<OperatorName>SN_SUNDONG</OperatorName>" +
"<RelationSlacct>S0_ASDDD</RelationSlacct>" +
"<AccountList>" +
"<AccountInfo>" +
"<AccountName>S0_ASDDD</AccountName>" +
"<Password>B4ytq+PteNL1f28o8cvinA==</Password>" +
"<Org>lc</Org>" +
"<State>0</State>" +
"<realName>测试123</realName>" +
"<mobile>12546987537</mobile>" +
"<email>1234@qq.com</email>" +
"</AccountInfo>" +
"<Isleader>N</Isleader>" +
"</AccountList>" +
"</Request>" };
String ret = (String) call.invoke(obj);
System.out.println("Sent 'Hello!', got '" + ret + "'");
} catch (Exception e) {
System.err.println(e.toString());
}
}
服务端获取对象:
在服务端接口上也加了注解@WebParam
为什么第二种调用方法获得的对象属性时null呢???