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 还是不行呢。
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!