gpt4 book ai didi

jaxb - [javax.xml.bind.UnmarshalException : unexpected element

转载 作者:行者123 更新时间:2023-12-04 10:02:12 27 4
gpt4 key购买 nike

调用 Web 服务时,出现以下异常:

[javax.xml.bind.UnmarshalException:意外元素(uri:“urn:partner.soap.sforce.com”,本地:“metadataServerUrl”)。预期元素为 <{}sessionId>、<{}sandbox>、<{}userId>、<{}passwordExpired>、<{}metadataServerUrl>、<{}userInfo>、<{}serverUrl>]

预期的响应实际上是一个名为 LoginResult 的对象。但是,我在异常 strace 中看到了元素名称。

loginResult 类是来自 web 服务调用的预期输出对象。请建议如何解决这个问题。

@XmlAccessorType(XmlAccessType.FIELD)

@XmlRootElement(name = "result")

公共(public)类登录结果 {
@XmlElement(name = "metadataServerUrl")
protected String metadataServerUrl;
@XmlElement(name = "passwordExpired")
protected boolean passwordExpired;
@XmlElement(name = "sandbox")
protected boolean sandbox;
@XmlElement(name = "serverUrl")
protected String serverUrl;
@XmlElement(name = "sessionId")
protected String sessionId;`
@XmlElement(name = "userId")
protected String userId;
@XmlElement(name = "userInfo")
protected GetUserInfoResult userInfo;

最佳答案

您需要利用包级别 @XmlSchema注释(在一个名为 package-info 的特殊类上指定命名空间限定。如果您已经有一个 package-info.java 文件,请确保它正在编译。

包信息.java

以下是package-info.java的完整内容文件。您需要从 example 更改软件包到包含您希望应用命名空间限定的域模型的包。

@XmlSchema(
namespace = "urn:partner.soap.sforce.com",
elementFormDefault = XmlNsForm.QUALIFIED)
package example;

import javax.xml.bind.annotation.*;

更多信息

您可以在我的博客上找到有关 JAXB 和命名空间限定的更多信息:
  • http://blog.bdoughan.com/2010/08/jaxb-namespaces.html
  • 关于jaxb - [javax.xml.bind.UnmarshalException : unexpected element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253314/

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