Hello there,

I am trying to follow an example from RESTEasy's documentation (Chapter 8.
Linking resources) in order to have Atom links injected directly into my
entity objects, but I simply can't get it to work when I try to return JSON
instead of XML. (I believe that I have correctly forced the use of Jettison
as per RESTEasy's documentation.) Below are the pertinent code snippets:



ArticleResource.java

@Path("/article")
> public class ArticleResource {
>
>    @Inject
>    ArticleService articleService; // it just returns fake entities
>
>    @AddLinks
>    @LinkResource(value = Article.class)
>    @GET
>    @Path("{id}")
>    @Produces("application/json")
>    public Response getArticle(@PathParam("id") String id) throws Exception
> {
>        Article article = articleService.getArticle(id);
>        return Response.status(200).entity(article).build();
>    }


>    @LinkResource(value = Article.class)
>    @POST
>    @Produces("application/json")
>    public Response postArticle() throws Exception {
>        Article article =  articleService.createArticle(new Article());
>        return Response.status(201).entity(article).build();
>    }
> }




Article.java

@Mapped(namespaceMap = @XmlNsMap(jsonName = "atom", namespace = "
> http://www.w3.org/2005/Atom";))
> @XmlRootElement(name = "article")
> @XmlAccessorType(XmlAccessType.NONE)
> public class Article {
>
>    @XmlID
>    @XmlAttribute
>    private String id;


>    @XmlElementRef
>    private RESTServiceDiscovery rest;
> }




And here are the responses I get when I set all the @Produces in
ArticleResource.java to "application/xml"



<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
> <article id="138">
>  <atom:link rel="self" href="
> http://localhost:8080/cad-jax-rs/rest/article/138"; />
>  <atom:link rel="add" href="http://localhost:8080/cad-jax-rs/rest/article";
> />
> </article>




and "application/json"


{
>  "id":"138",
>  "RESTServiceDiscovery":null
> }




Regarding my Maven pom.xml file, I believe that the important bits are the
following:


<dependency>
>    <groupId>org.jboss.resteasy</groupId>
>    <artifactId>resteasy-jaxrs</artifactId>
>    <scope>provided</scope>
> </dependency>
> <dependency>
>    <groupId>org.jboss.resteasy</groupId>
>    <artifactId>resteasy-links</artifactId>
> </dependency>
> <dependency>
>    <groupId>org.jboss.resteasy</groupId>
>    <artifactId>resteasy-jaxb-provider</artifactId>
>    <scope>provided</scope>
> </dependency>
> <dependency>
>    <groupId>org.jboss.resteasy</groupId>
>    <artifactId>resteasy-jettison-provider</artifactId>
>    <scope>provided</scope>
> </dependency>



The version numbers are being imported from the resteasy-bom artifact
(3.0.8.Final) that is not listed above.

Could anyone please try to spot any obvious errors or provide any guidance
at all? I would greatly appreciate any help on this matter. In case further
information is required, I will gladly provide it.

Thank you all in advance.

Respectfully yours,

Danilo Cominotti Marques

P.S.: In case I wanted to use Jackson 2 instead of Jettison, would it be
completely impossible to get automatic Atom links injection to work?
------------------------------------------------------------------------------
Slashdot TV.  Video for Nerds.  Stuff that Matters.
http://pubads.g.doubleclick.net/gampad/clk?id=160591471&iu=/4140/ostg.clktrk
_______________________________________________
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users

Reply via email to