whipjeans 2013-07-08 08:49 采纳率: 0%
浏览 2798

axis1.4调用webservice 传递自定义对象参数出错

调用客户端后出现:
org.xml.sax.SAXException: Invalid element in cn.services.QueryEquipmentRequest - queryEquipmentRequest

客户端代码(其中queryEquipmentRequest,QueryEquipmentResponse是我自定义的对象):
call.addParameter(new QName(nameSpace, "queryEquipmentRequest"), new QName(nameSpace, "queryEquipmentRequest"), ParameterMode.IN);
// // @@需修改成对应的输出参数名
call.setReturnType(new QName(nameSpace, "queryEquipmentResponse"),
QueryEquipmentResponse.class);
//

// // 需要根据xsd生成的bean,对输入输出的XSD文件定义的类型进行注册映射关系
//// // @@如本服务输入输出XSD文件中有四个自定义类型 queryEquipmentRequest、queryEquipmentResponse、deviceItem、deviceItemList,配置如下
QName queryEquipmentRequest = new QName(nameSpace, "queryEquipmentRequest");
call.registerTypeMapping(QueryEquipmentRequest.class, queryEquipmentRequest,
new BeanSerializerFactory(QueryEquipmentRequest.class,
queryEquipmentRequest), new BeanDeserializerFactory(
QueryEquipmentRequest.class, queryEquipmentRequest));
//
QName queryEquipmentResponse = new QName(nameSpace, "queryEquipmentResponse");
call.registerTypeMapping(QueryEquipmentResponse.class, queryEquipmentResponse,
new BeanSerializerFactory(QueryEquipmentResponse.class,
queryEquipmentResponse), new BeanDeserializerFactory(
QueryEquipmentResponse.class, queryEquipmentResponse));

服务端的wsdl文件为:

<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->wsdl:types/wsdl:types/wsdl:message/wsdl:message/wsdl:operation/wsdl:portType/wsdl:input/wsdl:output/wsdl:operation/wsdl:binding /wsdl:port/wsdl:service/wsdl:definitions

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-05 09:07
    关注

    这个错误信息表明在你的客户端代码中,你传入的 queryEquipmentRequest 对象在服务端的 WSDL 文件中没有定义。


    为了解决这个错误,你需要检查服务端 WSDL 文件,确认你自定义的 queryEquipmentRequest 对象是否在其中出现。如果没有,你需要在服务端代码中将其添加进去。


    另外,你需要确保你的客户端和服务端的 WSDL 文件是同步的,否则客户端在调用服务端的时候可能会遇到各种问题。


    此外,你还需要确认你在客户端中注册了所有自定义的类型映射,并且这些映射是正确的。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog