求大侠解关于webservice二维数组byte[][]传值问题

RowRainlove 2024-08-23 11:25:57

有没有大侠知道啥原因,之前也没写过调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

 

有没有大侠帮忙解答下,急!!!

 

 

...全文
111 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

12,166

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧