当前位置: 首页 > 面试题库 >

使用JAXB解组/编组List

堵鸿光
2023-03-14
问题内容

我正在尝试创建一个非常简单的REST服务器。我只是有一个测试方法,它将返回字符串列表。这是代码:

@GET
@Path("/test2")
public List test2(){
    List list=new Vector();
    list.add("a");
    list.add("b");
    return list;
}

它给出以下错误:

严重:Java类型的消息正文编写器,
类java.util.Vector和MIME媒体类型,
找不到应用程序/八位位组流

我希望JAXB对诸如String,Integer等简单类型具有默认设置。我想不是。这是我的想象:

<Strings>
  <String>a</String>
  <String>b</String>
</Strings>

使这种方法最简单的方法是什么?


问题答案:

我使用@LiorH的示例并将其扩展为:

@XmlRootElement(name="List")
public class JaxbList<T>{
    protected List<T> list;

    public JaxbList(){}

    public JaxbList(List<T> list){
        this.list=list;
    }

    @XmlElement(name="Item")
    public List<T> getList(){
        return list;
    }
}

注意,它使用泛型,因此您可以将其与String之外的其他类一起使用。现在,应用程序代码很简单:

    @GET
    @Path("/test2")
    public JaxbList test2(){
        List list=new Vector();
        list.add("a");
        list.add("b");
        return new JaxbList(list);
    }

为什么JAXB包中不存在这个简单的类?有人在其他地方看到类似的东西吗?



 类似资料:
  • 问题内容: 我正在构建一系列链接的类,我希望它们的实例能够编组到XML,以便可以将它们保存到文件中并在以后再次读取。 目前,我正在使用以下代码作为测试用例: XML输出为: 元素为空是否有原因?我希望它包含日期(即)的字符串表示形式。为此,我是否需要编写自己的代码? 输出为: 问题答案: 您将必须创建一个这样的: 并使用 另请参阅是否要在程序包级别定义适配器。

  • 问题内容: 我一直在尝试JAXB教程,并设法使代码能够从Java对象生成XML文件,然后能够使用XML生成Java对象。目前,它读取同一类的多个实例以创建一个类似于以下内容的XML文件 我希望能够使用JAXB技术来处理子类。例如:说我有一个Car,Van和Bicycle对象,它们是Vehicle的子类。我是否可以操纵我的JAXB类来编写一个会产生类似结果的XML文件?我在下面提供了我正在使用的代码

  • 问题内容: 我正在尝试与JAXB进行封送处理。 我的输出就像 但是我需要像这样的输出 我正在使用以下代码来执行此操作。如果我取消注释代码,则会出现属性绑定异常。没有它,我可以编译,但无法获得所需的确切输出。 和我的豆lo 转接器类别 问题答案: 您可以执行以下操作: 适配器CDATA 根 该注释用于指定的应该被使用。 演示版 我必须包装一个以获得所需的效果。另请注意,设置方法意味着它负责该操作的所

  • 问题内容: 所以这是我的问题。给了我生成的XML文件应符合的XSD。使用maven插件和外部绑定文件,我生成了源代码。但是,当我尝试编组对象时,生成的XML不符合我的要求。 我的XSD包含以下内容: 生成的XML片段如下所示: 当我期望它是: 有没有一种方法可以彻底解决此问题? 我不想为每一个写几个适配器,组合。由于XSD可能会发生变化,因此我想保持生成的源代码不变。 问题答案: 您将需要使用此用

  • 抱歉长帖,提前感谢! 在我的JAXB中(代码如下),我有一组值集,其中内部集被包装成一个容器类。所以,我有一组值容器,其中一个值是一个泛型类。问题:除非选择的泛型类是硬编码的,否则值不会得到解析。 关于XML的说明: >

  • 问题内容: 我在代码中遇到问题。 当我在本地(http:// localhost:8080 / home / rest / parameter / )上运行应用程序时,出现以下错误。我的主要要求是在xml上的UI上显示所有信息。 org.jboss.resteasy.spi.UnhandledException:com.sun.xml.bind.v2.runtime.IllegalAnnotati