gpt4 book ai didi

web-services - ADBException : Unexpected subelement

转载 作者:行者123 更新时间:2023-12-04 01:44:43 29 4
gpt4 key购买 nike

我使用以下方法创建了一个 Web 服务:

  • Apache Axis 2 CodeGen 向导 v.1.6.2(绑定(bind):ADB)
  • eclipse 朱诺
  • Tomcat 7
  • Java 6

  • 该服务将自定义 Java 对象 (DataBean) 返回给客户端,但我偶然发现了客户端代码中的异常:
    org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement {schemaTargetNs}message

    根据我的研究,再过一遍……我认为这是一个非常普遍的问题,但还没有关于应该采取什么措施来纠正它的结论性答案。

    此论坛和其他论坛上的一些帖子声明 WSDL 需要修改(某些 namespace ),或者客户端 stub 需要修改。有些人甚至说亚行存在错误。这肯定是早期版本的 Axis 中的一个错误,但邮件存档中有许多帖子表明该错误已修复。这些邮件归档与 Axis2 的早期版本有关。

    现在我的问题是:
  • 它仍然是一个错误吗?
  • 在 WSDL 或 Client stub 中究竟需要更改什么?

  • 值得一提的是,我创建了一个类似的 Web 服务,它将“字符串”返回给客户端。它工作正常!因此,当涉及复杂数据类型时,它会失败。

    有一些关于 Apache's website 的信息,在标题“ 已知限制 ”下...

    上面写着:“ ADB 是一个‘简单’的数据绑定(bind)框架,并不意味着编译所有类型的模式。以下限制是最突出的
  • 复杂类型扩展和限制 。”

  • 那是问题吗?

    以下是您可能感兴趣的 WSDL 文件的片段...
    <wsdl:types>
    <xs:schema xmlns:ax26="http://mywebservice/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="schemaTargetNs">
    <xs:import namespace="http://mywebservice/xsd"/>
    <xs:element name="getMsg">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="reqData" nillable="true" type="ax25:DataBean"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="getMsgResponse">
    <xs:complexType>
    <xs:sequence>
    <xs:element minOccurs="0" name="return" nillable="true" type="ax25:DataBean"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://mywebservice/xsd">
    <xs:complexType name="DataBean">
    <xs:sequence>
    <xs:element minOccurs="0" name="message" nillable="true" type="xs:string"/>
    <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    </wsdl:types>

    现在我该如何解决这个问题?我应该在这里包含一些其他代码片段吗?

    最佳答案

    “意外的子元素”表示接收者收到的消息包含接收者不期望的 XML 元素。 “{schemaTargetNs}message”是它遇到的意外元素的名称。换句话说,发送方向接收方发送了无效消息。

  • 发件人可能包含了一个它不应该包含的元素。
  • 发件人可能遗漏了一个强制元素。
  • 发件人可能以错误的顺序放置了元素。
  • 发件人可能发送了一条完全不正确的消息。

  • 如果服务器发出您报告的异常,则客户端向服务器发送了无效消息。如果客户端发出异常,则错误在服务器对客户端的响应中。

    关于web-services - ADBException : Unexpected subelement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565647/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com