12,165
社区成员
发帖
与我相关
我的任务
分享有没有大侠知道啥原因,之前也没写过调webservice二维byte[][]参数的例子
需要调用的接口:
public String create(String strUserName, String sendTo,String copyTo, String blindCopyTo, String subject, String Body,byte[][] file, String[] fileName)
我这边请求的代码:
public static String call1(String url,String namespace,String methodName,Object[] paramObject) {
String soapActionURI = namespace +"/"+ methodName;
try {
Service service = new Service();
SOAPHeaderElement header = new SOAPHeaderElement(namespace, methodName);
header.setNamespaceURI(namespace);
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(new QName(namespace, methodName));
List<String> sortParam = Arrays.asList("strUserName","sendTo","copyTo","bindCopyTo","subject","Body","file","fileName");
// 添加参数
List<String> parameterList = Lists.newArrayList();
for(String param:sortParam){
if(param.equals("file")){
call.addParameter(new QName(namespace, param), XMLType.SOAP_BASE64BINARY, ParameterMode.IN);
}else if(param.equals("fileName")){
call.addParameter(new QName(namespace, param), XMLType.SOAP_ARRAY, ParameterMode.IN);
}else{
call.addParameter(new QName(namespace, param), XMLType.SOAP_STRING, ParameterMode.IN);
}
}
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapActionURI);
// 设置返回类型
call.setReturnType(new QName(namespace, methodName), String.class);
String result = (String) call.invoke(paramObject);
log.info("调用 WebService 接口返回===>" + result);
return result;
} catch (Exception e) {
log.error("调用 WebService 接口错误信息==>" + e.getMessage());
}
return null;
}
请求参数如下:
String[] filenames = new String[]{"test.txt"};
byte[][] file=.....(这里是多个文件生成的二维数组)
Object[] opAddEntryArgs = new Object[] { "user", "user","","","主题","body内容",file,filenames};
请求后:
result返回的是null
有没有大侠帮忙解答下,急!!!