1
<collection>
<Car>
<Car>
<Car>
</collection>

我想将标签的名称更改为我不知道我在使用什么——它只是 Jboss 7.1.1 和一个标准的多模块 EAR maven 设置。无论他们使用什么 JAXB 提供程序,我都应该包含 RESTEasy。

@XmlElementWrapper 注释我可以访问,但是当我注释 JAXRS 服务方法“getCars”时它不起作用。它对 xml 输出没有影响。

@Wrapped(element="cars") 不起作用 b/c 我似乎无法导入 RESTEasy jax-rs jar。我将它添加到我的 pom.xml 中,但它没有被拾取。
1)不知道“包含 RESTEasy 的 jboss”是否意味着我什至不需要担心导入另一个库,以便我可以使用 @Wrapped 注释。2) 为了我的目的,我可以使用 @XmlElementWrapper 注释吗?

@GET
@Produces({MediaType.APPLICATION_XML})
@Path("/")
@XmlElementWrapper(name="cars")//I have access to this annotation but nothing happens
@Wrapped(element="cars")//eclipse doesn't know what this annotation means
public List<car> getCars();
4

1 回答 1

4

您应该能够通过使用@Wrapped注释来完成此操作。

要将此注释添加到您的项目中,请尝试将此工件添加到您的pom.xml

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxb-provider</artifactId>
        <version>${resteasy.version}</version>
    </dependency>

另一种选择是创建自己的包装类:

@XmlRootElement(name="cars")
public class CarCollection {
    @XmlElement(name="car")
    private List<Car> articles = new ArrayList<Car>();
}

@GET
@Produces({MediaType.APPLICATION_XML})
@Path("/")
public CarCollection getCars();

仅使用@XmlElementWrapper注释是行不通的。

于 2013-06-03T18:08:01.860 回答