将名称空间设置为@XmlRootElement时,解组失败且没有错误

NikosDim

我已经创建了一个JAXB对象,并且试图将其中的xml字符串解组。我面临的问题是,当我将namespace属性放入@XmlRootElement和发送的xml文档中时,正在创建JAXB对象,但它为空。如果删除命名空间,它将起作用。所以这就是我的意思

我的JAXB对象:

@XmlRootElement(name = "incident", namespace = "http://www.ba.com/schema/BAserviceDeskAPI/incident")
@XmlAccessorType(XmlAccessType.FIELD)
public class Incident {

    @XmlElement
    private String eventTitle;

    public Incident() {
    }

    public String getEventTitle() {
        return eventTitle;
    }

    public void setEventTitle(String eventTitle) {
        this.eventTitle = eventTitle;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Incident [");
        builder.append("eventTitle=");
        builder.append(eventTitle);
        builder.append("]");
        return builder.toString();
    }
}

我的主:

public static void main(String[] args) throws JAXBException {
        String s = "<incident xmlns=\"http://www.ba.com/schema/BAserviceDeskAPI/incident\">"
                + "<eventTitle>Test Title from BAwrapper</eventTitle>"
                + "</incident>";
        JAXBContext jaxbContext = JAXBContext.newInstance(Incident.class);
        Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
        Incident incident = (Incident) jaxbUnmarshaller.unmarshal(new ByteArrayInputStream(s.getBytes(StandardCharsets.UTF_8)));

        System.out.println(incident.toString());
    }
}

输出:

Incident [eventTitle=null]

如果我, namespace = "http://www.ba.com/schema/BAserviceDeskAPI/incident"@XmlRootElementxmlns=\"http://www.ba.com/schema/BAserviceDeskAPI/incident\"从发送的xml中删除,则会得到以下输出

Incident [eventTitle=Test Title from BAwrapper]

任何想法为什么会发生这种情况?

谢谢

博多安

指定的名称空间@XmlRootElement仅适用于该元素。如果希望将其应用于已映射到的所有元素,则可以使用@XmlSchema注释在包级别进行操作

包信息.java

@XmlSchema( 
    namespace = "http://www.ba.com/schema/BAserviceDeskAPI/incident", 
    elementFormDefault = XmlNsForm.QUALIFIED) 
package example;

import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;

欲获得更多信息

我已经在我的博客上写了有关JAXB和名称空间限定的更多信息:


附加信息

将名称空间设置为@XmlRootElement时,解组失败且没有错误

对于JAXB,我们(JSR-222专家组)决定,如果存在未映射的内容,则默认情况下,解组不会失败。为什么?因为很多XML文档都包含额外的内容,所以事情总是会失败。如果您确实希望看到这些错误,则可以在ValidationEventHandler指定一个Unmarshaller

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当未找到文件时,代码失败且没有错误

来自分类Dev

$ http PUT请求缓慢且失败,没有状态码,没有错误

来自分类Dev

运行具有错误处理且没有快速失败的并行任务

来自分类Dev

为什么PayPal的Express Checkout失败且没有错误?

来自分类Dev

为什么此登录表单会失败且没有错误?

来自分类Dev

AWS 步骤函数 - 转换 {AWS::AccountId}::StepFunctionsYamlTransform 失败且没有错误消息

来自分类Dev

没有XmlRootElement批注的JAXB解组?

来自分类Dev

MongoDB更新失败,没有错误

来自分类Dev

扭曲的ReconnectingClientFactory失败,没有错误

来自分类Dev

ecto验证失败,没有错误

来自分类Dev

查询失败,没有错误

来自分类Dev

转换失败,没有错误消息

来自分类Dev

SCP失败而没有错误

来自分类Dev

Django:细节未显示且没有错误

来自分类Dev

PDO插入SQL不会执行且没有错误

来自分类Dev

C#datagrid未填充且没有错误

来自分类Dev

将名称空间更改为设置文件

来自分类Dev

如果未设置超时,为什么cURL连接失败(没有错误)?

来自分类Dev

有时仅将名称检索为字符串,而没有位置组成部分

来自分类Dev

调试时没有错误或警告

来自分类Dev

Xamarin Studio创建具有错误名称空间的文件

来自分类Dev

Visual Studio在断言失败时退出,没有错误消息

来自分类Dev

在Excel中已打开时,使用QFile写入文件失败,没有错误代码

来自分类Dev

媒体源加载失败时没有错误事件

来自分类Dev

为什么Capistrano部署在Assets:Precompile时失败而没有错误?

来自分类Dev

当发送一些额外的属性时,将 CXF 与 Spring Java Config 一起使用时解组错误(但使用 XML 配置时没有错误)

来自分类Dev

Typescript函数/回调类型:将函数赋值为“错误”时,没有错误

来自分类Dev

字段类型为int时传递str时没有错误?

来自分类Dev

GetDIBits()将目标指针设置为NULL,没有错误

Related 相关文章

  1. 1

    当未找到文件时,代码失败且没有错误

  2. 2

    $ http PUT请求缓慢且失败,没有状态码,没有错误

  3. 3

    运行具有错误处理且没有快速失败的并行任务

  4. 4

    为什么PayPal的Express Checkout失败且没有错误?

  5. 5

    为什么此登录表单会失败且没有错误?

  6. 6

    AWS 步骤函数 - 转换 {AWS::AccountId}::StepFunctionsYamlTransform 失败且没有错误消息

  7. 7

    没有XmlRootElement批注的JAXB解组?

  8. 8

    MongoDB更新失败,没有错误

  9. 9

    扭曲的ReconnectingClientFactory失败,没有错误

  10. 10

    ecto验证失败,没有错误

  11. 11

    查询失败,没有错误

  12. 12

    转换失败,没有错误消息

  13. 13

    SCP失败而没有错误

  14. 14

    Django:细节未显示且没有错误

  15. 15

    PDO插入SQL不会执行且没有错误

  16. 16

    C#datagrid未填充且没有错误

  17. 17

    将名称空间更改为设置文件

  18. 18

    如果未设置超时,为什么cURL连接失败(没有错误)?

  19. 19

    有时仅将名称检索为字符串,而没有位置组成部分

  20. 20

    调试时没有错误或警告

  21. 21

    Xamarin Studio创建具有错误名称空间的文件

  22. 22

    Visual Studio在断言失败时退出,没有错误消息

  23. 23

    在Excel中已打开时,使用QFile写入文件失败,没有错误代码

  24. 24

    媒体源加载失败时没有错误事件

  25. 25

    为什么Capistrano部署在Assets:Precompile时失败而没有错误?

  26. 26

    当发送一些额外的属性时,将 CXF 与 Spring Java Config 一起使用时解组错误(但使用 XML 配置时没有错误)

  27. 27

    Typescript函数/回调类型:将函数赋值为“错误”时,没有错误

  28. 28

    字段类型为int时传递str时没有错误?

  29. 29

    GetDIBits()将目标指针设置为NULL,没有错误

热门标签

归档