2 myc csdn Myc_CSDN 于 2017.01.16 14:22 提问

webService接口调用失败

我是这样调用客户提供的接口的

 public List<Task> getOperationSystemData(Long userId) {
        String url = AppContext.getSystemProperty("anhui.webService.url");
        Object[] response = null;
        try{
            EndpointReference targetEPR = new EndpointReference(url);
            RPCServiceClient serviceClient = new RPCServiceClient();
            GetNewTasks parm = new GetNewTasks();
            parm.setUserID(String.valueOf(userId));
            Object[] opAddArgs = new Object[]{parm.getUserID()};
            Options options = serviceClient.getOptions();
            options.setTo(targetEPR);
            QName opAdd =new QName("http://www.ustcsoft.com","getNewTasks");
            Class[] returnTypes = new Class[] {Root.class};
            response = serviceClient.invokeBlocking(opAdd,opAddArgs,returnTypes);
        }catch(Exception e){
            log.info("获取业务系统待办异常", e);
        }

但一直报错:

 org.apache.axis2.AxisFault: Unmarshalling Error: unexpected element (uri:"", local:"arg0"). Expected elements are <{}UserID> 
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)

google后给的答案是在方法参数中加@webParam(name="",targetNamespace="http://www.ustcsoft.com"),这样做了,还是没用,求大神指点

3个回答

Myc_CSDN
Myc_CSDN   2017.01.22 14:50
已采纳

最后用了HttpClient这种方式,获取到了一个dom4j 的Document格式的xml,再进行了解析

Myc_CSDN
Myc_CSDN   2017.01.16 14:24

报错是在serviceClient.invokeBlocking这里报的错

yjzagan
yjzagan   2017.01.16 15:50

在**Webservice服务端**方法参数前面加上,@WebParam(name = "arg0", targetNamespace = "") 或 @WebParam(name = "arg0", targetNamespace = "http://www.ustcsoft.com") 这两种试试呢?

Myc_CSDN
Myc_CSDN 还是不行呢。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【webservice】调用webservice接口
1.调用案例,仅供参考     使用 axis api 调用接口,调用 WeatherWebService (公共的 webservice 服务),网址参看  WeatherWebService axis 依赖 + junit jar 包  gradle 配置 dependencies { testCompile group: 'junit', name: 'jun
Webservice接口调用方法详解
Service sv = new Service(); //new 一个服务 Call call = (Call) sv.createCall(); //创建一个call对象 call.setTargetEndpointAddress(new URL(“http://10.88.8.26:7001/ahCardService/services/CardServ
webserviceExample
webservice 接口调用
webservice接口调用
webservice接口调用
调用WebService接口遇到的问题。
工作需要,调用一个项目的接口,原本采用的是wsimport 命令的方式。但是后来发现,如果服务在windows上,一切正常,可以调用到接口。但是如果服务在Linux上,调用接口会报  "在文档的元素内容中找到无效的 XML 字符 (Unicode: 0x0)".网上说是接口返回的xml的字符集有问题。折腾了半天都搞不定。 后面换一种eclipse自带的生成webService Cli
webservice调用常见错误原因
1、如果出现这个错误:java.lang.NoClassDefFoundError: javax/xml/soap/SOAPException,原因是没有导入 axis2-saaj.jar包 2、如果出现这个错误:java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton,原因是没有导入c
webservice、soap等接口调用参考
webservice,soap调用, webservice,soap,积分接口调用,qq webservice调用
webservice接口调用实例
webservice接口调用实例,经个人验证可用
WebService 工具类
package com.thunisoft.hlwzbdb.mgr.business.ajgl.record; import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import or
十二、ExtJS与Webservice应用
Webservice与ExtJS结合的应用中有许多细节值得注意,下面就从Visual Studio创建一个Webservice项目开始,首先启动Visual Studio并新建一个“Asp.Net Web服务应用程序”或“Asp.Net Web应用程序”,新建项目命名为“TestWebService”,如下图所示: 打开项目中默认新建的Service1.asmx文件(如果没有asmx,则