- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何编码 JAXBElement 列表?
例如,我有一个无法注释的 POJO:
public class APojo {
private String aString;
public APojo() {
super();
}
public String getAString() {
return aString;
}
public void setAString(String aString) {
this.aString = aString;
}
}
所以我正在这样做
APojo aPojo = new APojo();
aPojo.setaString("a string");
JAXBElement<APojo> aJAXBedPojo = new JAXBElement<APojo>(new QName("apojo"), APojo.class, aPojo);
哪个被正确编码。
但是
List<JAXBElement<APojo>> list = new ArrayList<JAXBElement<APojo>>();
不工作:当我这样做时
JAXBContext context = JAXBContext.newInstance(APojo.class, ArrayList.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(list, System.out);
运行时提高:
[com.sun.istack.internal.SAXException2: unable to marshal type "java.util.ArrayList" as an element because it is missing an @XmlRootElement annotation]
这是正常的,因为 ArrayList 没有注释。
我知道我可以创建一个围绕 ArrayList 的包装器并用 @XmlRootElement 对其进行注释,这样我就可以整理这个包装器。
我正在寻找没有这样的包装器的解决方案。是否可以创建一个 JAXBElement ,其中 T 是 ArrayList ?或者类似的东西?
最佳答案
我强烈建议您使用 XmlAdapter 。您只需使用编码器注册适配器,它将使用您带注释的适配器类来代替您无法注释的类。
此外,我认为包装器类比尝试在没有包装器的情况下执行某些操作更干净。
话虽如此,如果您确实愿意,可以尝试以下操作:
List<JAXBElement<APojo>> list = new ArrayList<JAXBElement<APojo>>();
JAXBElement<List<JAXBElement<APojo>>> listElement = new JAXBElement<List<JAXBElement<APojo>>>(new QName("apojolist"), List.class, list);
关于java - JAXBElement 优于 ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9736385/
以下代码有效: private List custom; @XmlAnyElement public List getCustom() { if (custom == null) {
我有一个使用 Spring (v4.0.5) 的 http 服务。它的 http 端点是使用 Spring Web MVC 配置的。响应是根据模式生成的 JAXB2 注释类。响应被包装在 JAXBEl
我有一个 xsd,其中包含替换组。当我尝试使用 cxf wsdl2java JAXB 生成 Java 类时,生成 List> 而不是 List 。如何避免 JAXBElement?我尝试使用 bind
我想从 XSD 文件生成带有 JAXB 的 Java 类。 问题是,我总是得到一些像这样的类(删除了命名空间): public static class Action { @X
我在用: GSON 2.3.1 apache-cxf-3.1.1 JBoss EAP 6.4 我正在使用 wsdl2java 从 wsdl 创建 webservice 客户端。 我用以下方法生成类:
我有一个完全可用且经过测试的 REST API。我正在使用 enunciate 创建文档。 请求和响应对象是使用 jaxb 从 xsd 文件生成的。在文档中,可以识别响应对象,但我的请求正文类型是(自
我想实现一个返回 JAXBElement 的方法,下面是代码 @XmlRootElement(name = "history") @XmlAccessorType(XmlAccessType.FIEL
我有多个根元素,因此,我需要写 JAXBElement jaxbBookType = objectFactory.createBookType (bookType); JAXBElement jaxb
考虑 JAXB 生成的以下代码: public class CnpOnlineResponse { protected JAXBElement transactionResponse;
我有以下代码, JAXBContext jc = JAXBContext.newInstance(TestResults.class); Marshaller m = jc.createMarshal
当我尝试从 wsdl 文档生成客户端时,我得到的客户端似乎有很多 JAXBElement 属性,例如 protected List> nameOrLinkingNameOrFamilyName; 我使
我正在使用 NetBeans 和 Glassfish 从现有 WSDL 构建 Web 服务。NetBeans 已从给定的 WSDL 创建了所需的类。WSDL 定义了一些基本数据类型(例如 BaseTy
我定义了一个 Book 类,我想创建一个 JAXBElement 对象,该对象将包含与来自 String 对象的 XML 对应的信息。 例如,我可以有这样的东西: String code = "Har
如何编码 JAXBElement 列表? 例如,我有一个无法注释的 POJO: public class APojo { private String aString; public APojo()
我有一个方法 public Response xyz ( JAXBElement request ) { ...... } 两个不同的地方使用不同的 JAXBElement 调用它。一与 xyz(JA
您好,我想将 JAXBelement 值存储到 String 变量,请告诉我该怎么做。我有以下方法。 public JAXBElement getSessionId() { return s
我已经从我的 XML .xsd 生成了类,并且正在尝试设置一个字段 EndpointID在类(class)内MeterSessionInputRF .我遇到的问题是 setEndpointID方法只接
我正在学习 JAX-WS,并且还介绍了 JAXB。我可以用它来将 java(xml) 编码(un)编码为 xml(java)。但是这行代码的目的是什么,然后我使用 Apache CXF 生成了 WS
我有一个关于 JAXB 的简单问题。这是示例代码: //setter that has input JAXBElement b.setBIC(JAXBElement value); 如何初
我有一个名为 MYClass 的类,其代码如下所示 package com.rest; public class MyClass { private String var; publi
我是一名优秀的程序员,十分优秀!