Re: [Resteasy-users] Confused on handling response containing collections in json

2013-09-04 Thread Mike Miller
Sorry - we are JBoss 4.2.3.GA (still) with RestEasy 2.3.5.

-Original Message-
From: Bill Burke [mailto:bbu...@redhat.com] 
Sent: Wednesday, September 04, 2013 3:06 PM
To: Mike Miller
Cc: resteasy-users@lists.sourceforge.net
Subject: Re: [Resteasy-users] Confused on handling response containing 
collections in json

What is your server?  Tomcat? Jetty?  JBoss version?

On 9/4/2013 4:02 PM, Mike Miller wrote:
 Okay, thanks - so how do I do that?  I see Chapter 21 (2.3.5) talks about 
 Maven but we aren't using maven.  Do  I just need to include the jar or is 
 there something in the web.xml that I need to add to include this 'provider?

 Also could someone please address my last question:

 Are we using the Response object incorrectly?  What's really the difference 
 between returning ListCustomer vs Response with the ListCustomer in the 
 generic entity?

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 2:54 PM
 To: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response containing 
 collections in json

 Switch to Jackson on the server side.  We will be deprecating Jettison in the 
 near future as it is buggy and not being well maintained.
 Jackson has all of what Jettison has and more...

 But you are right, Jettison produces different JSON.

 On 9/4/2013 3:27 PM, Mike Miller wrote:
 We are building a restful api, using 2.3.5 (although I don't think 
 the release level matters) and I am a bit confused on response 
 handling within RestEasy:

 Right or wrong, we made most of our resource methods return Response, 
 using the GenericEntity when we wanted to return a collection of
 objects.Testing up to now was in Chrome Advanced Rest Client.  We
 have our beans JAXB annotated and the resource 'produces' both 
 application/xml and application/json.  For example:

 @GET

 @Produces({application/json, application/xml})

 *public*Response find(@ContextUriInfo uriInfo)

  {

 setupQueryParms(uriInfo.getQueryParameters());

 ListCustomer custList = *null*;

 *try*{

custList = listAllPaginated();

 } *catch*(FinderException e) {

Log./getInstance/().error(FinderException
 caught :, e );

throwException(Response.Status./NOT_FOUND/,
 Error searching customers);

 }

 GenericEntityListCustomer entity =
 *new*GenericEntityListCustomer(custList) {};

 *return*Response./ok/(entity).build();

  }

 Now, as part of writing JUnit test cases, I wanted to take the 
 response I get back and put it back to object form so that I can then do a 
 set of
 asserts against the object or list of objects returned.   I downloaded
 Jackson version 1.9.11 and tried to serialize/marshal the json back 
 to object form but keep getting the following error:

 Exception in thread main
 _org.codehaus.jackson.map.exc.UnrecognizedPropertyException_:
 Unrecognized field Customer (Class
 com.jda.portfolio.api.rest.base.Customer), not marked as ignorable

 at [Source: C:\PPOSDevelopment\Trunk\API\REST\Server\response.json;
 line: 1, column: 15] (through reference chain:
 com.jda.portfolio.api.rest.base.Customer[Customer])

 Is there a difference between Jackson json and what RestEasy produces, from 
 I think Jettison?   I also took the example from User doc section 19.6.1 
 JSON and JAXB collections/arrays



 [{foo:{@test:bill}},{foo:{@test:monica}}}] and tried to marshal 
 that back to object form - getting the same error.



 It seems like from Jackson, I would get something like:

 [{@test:bill},{@test:monica}}] for a ListFoo - the difference 
 being the {foo: } which looks like a wrapper for the object.



 I changed the code to return ListCustomer instead of the Response with 
 GenericEntity including the ListCustomer but the json looks the same.



 What am I doing wrong?



 Are we using the Response object incorrectly?  What's really the difference 
 between returning ListCustomer vs Response with the ListCustomer in the 
 generic entity?



 I hope this is clear, but I can provide more details if needed.







 -
 -
  Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 
 2012, more!
 Discover the easy way to master current and previous Microsoft 
 technologies and advance your career. Get an incredible 1,500+ hours 
 of step-by-step tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.
 c
 lktrk



 ___
 Resteasy-users mailing list
 Resteasy-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/resteasy-users


 --
 Bill Burke
 JBoss, a division of Red Hat
 http://bill.burkecentral.com

Re: [Resteasy-users] Confused on handling response containing collections in json

2013-09-04 Thread John D. Ament
Yeah, I've run into this too (my situation is worse, I have RESTeasy
w/ Jackson, Apache CXF w/ Jettison and a third system using Spring MVC
w/ Jackson).

Jettison's JSON structure is more like XML with its use of root
elements in a parent wrapper tag.  This is acceptable by JSON
standards, but not normal by JSON standards.



On Wed, Sep 4, 2013 at 4:57 PM, Bill Burke bbu...@redhat.com wrote:
 JSON is not a *Java* format.  It is a JavaScript Object Notation.

 On 9/4/2013 4:54 PM, Mike Miller wrote:
 Thanks - will try that.   Just included the Jackson jar but that didn't make 
 it.

 One last question - don't mean to eat up all your time - but your statement, 
  But you are right, Jettison produces different JSON.  How that be?  Isn't 
 JSON a spec such that there should be consistent output for a set of data?

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 3:50 PM
 To: Mike Miller
 Cc: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response containing 
 collections in json

 Just don't include the jettison module and include all the jackson stuff.  
 Should work.

 On 9/4/2013 4:19 PM, Mike Miller wrote:
 Sorry - we are JBoss 4.2.3.GA (still) with RestEasy 2.3.5.

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 3:06 PM
 To: Mike Miller
 Cc: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response containing
 collections in json

 What is your server?  Tomcat? Jetty?  JBoss version?

 On 9/4/2013 4:02 PM, Mike Miller wrote:
 Okay, thanks - so how do I do that?  I see Chapter 21 (2.3.5) talks about 
 Maven but we aren't using maven.  Do  I just need to include the jar or is 
 there something in the web.xml that I need to add to include this 
 'provider?

 Also could someone please address my last question:

 Are we using the Response object incorrectly?  What's really the 
 difference between returning ListCustomer vs Response with the 
 ListCustomer in the generic entity?

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 2:54 PM
 To: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response
 containing collections in json

 Switch to Jackson on the server side.  We will be deprecating Jettison in 
 the near future as it is buggy and not being well maintained.
 Jackson has all of what Jettison has and more...

 But you are right, Jettison produces different JSON.

 On 9/4/2013 3:27 PM, Mike Miller wrote:
 We are building a restful api, using 2.3.5 (although I don't think
 the release level matters) and I am a bit confused on response
 handling within RestEasy:

 Right or wrong, we made most of our resource methods return
 Response, using the GenericEntity when we wanted to return a collection of
 objects.Testing up to now was in Chrome Advanced Rest Client.  We
 have our beans JAXB annotated and the resource 'produces' both
 application/xml and application/json.  For example:

 @GET

 @Produces({application/json, application/xml})

 *public*Response find(@ContextUriInfo uriInfo)

{

   setupQueryParms(uriInfo.getQueryParameters());

   ListCustomer custList = *null*;

 *try*{

  custList = listAllPaginated();

   } *catch*(FinderException e) {

  Log./getInstance/().error(FinderException
 caught :, e );

  throwException(Response.Status./NOT_FOUND/,
 Error searching customers);

   }

   GenericEntityListCustomer entity =
 *new*GenericEntityListCustomer(custList) {};

 *return*Response./ok/(entity).build();

}

 Now, as part of writing JUnit test cases, I wanted to take the
 response I get back and put it back to object form so that I can then do 
 a set of
 asserts against the object or list of objects returned.   I downloaded
 Jackson version 1.9.11 and tried to serialize/marshal the json back
 to object form but keep getting the following error:

 Exception in thread main
 _org.codehaus.jackson.map.exc.UnrecognizedPropertyException_:
 Unrecognized field Customer (Class
 com.jda.portfolio.api.rest.base.Customer), not marked as ignorable

 at [Source: C:\PPOSDevelopment\Trunk\API\REST\Server\response.json;
 line: 1, column: 15] (through reference chain:
 com.jda.portfolio.api.rest.base.Customer[Customer])

 Is there a difference between Jackson json and what RestEasy produces, 
 from I think Jettison?   I also took the example from User doc section 
 19.6.1 JSON and JAXB collections/arrays



 [{foo:{@test:bill}},{foo:{@test:monica}}}] and tried to 
 marshal that back to object form - getting the same error.



 It seems like from Jackson, I would get something like:

 [{@test:bill},{@test:monica}}] for a ListFoo

Re: [Resteasy-users] Confused on handling response containing collections in json

2013-09-04 Thread Bill Burke
JSON is not a *Java* format.  It is a JavaScript Object Notation.

On 9/4/2013 4:54 PM, Mike Miller wrote:
 Thanks - will try that.   Just included the Jackson jar but that didn't make 
 it.

 One last question - don't mean to eat up all your time - but your statement,  
 But you are right, Jettison produces different JSON.  How that be?  Isn't 
 JSON a spec such that there should be consistent output for a set of data?

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 3:50 PM
 To: Mike Miller
 Cc: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response containing 
 collections in json

 Just don't include the jettison module and include all the jackson stuff.  
 Should work.

 On 9/4/2013 4:19 PM, Mike Miller wrote:
 Sorry - we are JBoss 4.2.3.GA (still) with RestEasy 2.3.5.

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 3:06 PM
 To: Mike Miller
 Cc: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response containing
 collections in json

 What is your server?  Tomcat? Jetty?  JBoss version?

 On 9/4/2013 4:02 PM, Mike Miller wrote:
 Okay, thanks - so how do I do that?  I see Chapter 21 (2.3.5) talks about 
 Maven but we aren't using maven.  Do  I just need to include the jar or is 
 there something in the web.xml that I need to add to include this 'provider?

 Also could someone please address my last question:

 Are we using the Response object incorrectly?  What's really the 
 difference between returning ListCustomer vs Response with the 
 ListCustomer in the generic entity?

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 2:54 PM
 To: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response
 containing collections in json

 Switch to Jackson on the server side.  We will be deprecating Jettison in 
 the near future as it is buggy and not being well maintained.
 Jackson has all of what Jettison has and more...

 But you are right, Jettison produces different JSON.

 On 9/4/2013 3:27 PM, Mike Miller wrote:
 We are building a restful api, using 2.3.5 (although I don't think
 the release level matters) and I am a bit confused on response
 handling within RestEasy:

 Right or wrong, we made most of our resource methods return
 Response, using the GenericEntity when we wanted to return a collection of
 objects.Testing up to now was in Chrome Advanced Rest Client.  We
 have our beans JAXB annotated and the resource 'produces' both
 application/xml and application/json.  For example:

 @GET

 @Produces({application/json, application/xml})

 *public*Response find(@ContextUriInfo uriInfo)

{

   setupQueryParms(uriInfo.getQueryParameters());

   ListCustomer custList = *null*;

 *try*{

  custList = listAllPaginated();

   } *catch*(FinderException e) {

  Log./getInstance/().error(FinderException
 caught :, e );

  throwException(Response.Status./NOT_FOUND/,
 Error searching customers);

   }

   GenericEntityListCustomer entity =
 *new*GenericEntityListCustomer(custList) {};

 *return*Response./ok/(entity).build();

}

 Now, as part of writing JUnit test cases, I wanted to take the
 response I get back and put it back to object form so that I can then do a 
 set of
 asserts against the object or list of objects returned.   I downloaded
 Jackson version 1.9.11 and tried to serialize/marshal the json back
 to object form but keep getting the following error:

 Exception in thread main
 _org.codehaus.jackson.map.exc.UnrecognizedPropertyException_:
 Unrecognized field Customer (Class
 com.jda.portfolio.api.rest.base.Customer), not marked as ignorable

 at [Source: C:\PPOSDevelopment\Trunk\API\REST\Server\response.json;
 line: 1, column: 15] (through reference chain:
 com.jda.portfolio.api.rest.base.Customer[Customer])

 Is there a difference between Jackson json and what RestEasy produces, 
 from I think Jettison?   I also took the example from User doc section 
 19.6.1 JSON and JAXB collections/arrays



 [{foo:{@test:bill}},{foo:{@test:monica}}}] and tried to 
 marshal that back to object form - getting the same error.



 It seems like from Jackson, I would get something like:

 [{@test:bill},{@test:monica}}] for a ListFoo - the difference 
 being the {foo: } which looks like a wrapper for the object.



 I changed the code to return ListCustomer instead of the Response with 
 GenericEntity including the ListCustomer but the json looks the same.



 What am I doing wrong?



 Are we using the Response object incorrectly?  What's really the 
 difference between returning ListCustomer vs Response with the 
 ListCustomer

Re: [Resteasy-users] Confused on handling response containing collections in json

2013-09-04 Thread Mike Miller
Thanks - will try that.   Just included the Jackson jar but that didn't make it.

One last question - don't mean to eat up all your time - but your statement,  
But you are right, Jettison produces different JSON.  How that be?  Isn't 
JSON a spec such that there should be consistent output for a set of data?

-Original Message-
From: Bill Burke [mailto:bbu...@redhat.com] 
Sent: Wednesday, September 04, 2013 3:50 PM
To: Mike Miller
Cc: resteasy-users@lists.sourceforge.net
Subject: Re: [Resteasy-users] Confused on handling response containing 
collections in json

Just don't include the jettison module and include all the jackson stuff.  
Should work.

On 9/4/2013 4:19 PM, Mike Miller wrote:
 Sorry - we are JBoss 4.2.3.GA (still) with RestEasy 2.3.5.

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 3:06 PM
 To: Mike Miller
 Cc: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response containing 
 collections in json

 What is your server?  Tomcat? Jetty?  JBoss version?

 On 9/4/2013 4:02 PM, Mike Miller wrote:
 Okay, thanks - so how do I do that?  I see Chapter 21 (2.3.5) talks about 
 Maven but we aren't using maven.  Do  I just need to include the jar or is 
 there something in the web.xml that I need to add to include this 'provider?

 Also could someone please address my last question:

 Are we using the Response object incorrectly?  What's really the difference 
 between returning ListCustomer vs Response with the ListCustomer in the 
 generic entity?

 -Original Message-
 From: Bill Burke [mailto:bbu...@redhat.com]
 Sent: Wednesday, September 04, 2013 2:54 PM
 To: resteasy-users@lists.sourceforge.net
 Subject: Re: [Resteasy-users] Confused on handling response 
 containing collections in json

 Switch to Jackson on the server side.  We will be deprecating Jettison in 
 the near future as it is buggy and not being well maintained.
 Jackson has all of what Jettison has and more...

 But you are right, Jettison produces different JSON.

 On 9/4/2013 3:27 PM, Mike Miller wrote:
 We are building a restful api, using 2.3.5 (although I don't think 
 the release level matters) and I am a bit confused on response 
 handling within RestEasy:

 Right or wrong, we made most of our resource methods return 
 Response, using the GenericEntity when we wanted to return a collection of
 objects.Testing up to now was in Chrome Advanced Rest Client.  We
 have our beans JAXB annotated and the resource 'produces' both 
 application/xml and application/json.  For example:

 @GET

 @Produces({application/json, application/xml})

 *public*Response find(@ContextUriInfo uriInfo)

   {

  setupQueryParms(uriInfo.getQueryParameters());

  ListCustomer custList = *null*;

 *try*{

 custList = listAllPaginated();

  } *catch*(FinderException e) {

 Log./getInstance/().error(FinderException
 caught :, e );

 throwException(Response.Status./NOT_FOUND/,
 Error searching customers);

  }

  GenericEntityListCustomer entity =
 *new*GenericEntityListCustomer(custList) {};

 *return*Response./ok/(entity).build();

   }

 Now, as part of writing JUnit test cases, I wanted to take the 
 response I get back and put it back to object form so that I can then do a 
 set of
 asserts against the object or list of objects returned.   I downloaded
 Jackson version 1.9.11 and tried to serialize/marshal the json back 
 to object form but keep getting the following error:

 Exception in thread main
 _org.codehaus.jackson.map.exc.UnrecognizedPropertyException_:
 Unrecognized field Customer (Class 
 com.jda.portfolio.api.rest.base.Customer), not marked as ignorable

 at [Source: C:\PPOSDevelopment\Trunk\API\REST\Server\response.json;
 line: 1, column: 15] (through reference chain:
 com.jda.portfolio.api.rest.base.Customer[Customer])

 Is there a difference between Jackson json and what RestEasy produces, from 
 I think Jettison?   I also took the example from User doc section 19.6.1 
 JSON and JAXB collections/arrays



 [{foo:{@test:bill}},{foo:{@test:monica}}}] and tried to marshal 
 that back to object form - getting the same error.



 It seems like from Jackson, I would get something like:

 [{@test:bill},{@test:monica}}] for a ListFoo - the difference 
 being the {foo: } which looks like a wrapper for the object.



 I changed the code to return ListCustomer instead of the Response with 
 GenericEntity including the ListCustomer but the json looks the same.



 What am I doing wrong?



 Are we using the Response object incorrectly?  What's really the difference 
 between returning ListCustomer vs Response with the ListCustomer in the 
 generic entity?



 I hope this is clear, but I can provide more details if needed

Re: [Resteasy-users] Confused on handling response containing collections in json

2013-09-04 Thread Bill Burke
Switch to Jackson on the server side.  We will be deprecating Jettison 
in the near future as it is buggy and not being well maintained. 
Jackson has all of what Jettison has and more...

But you are right, Jettison produces different JSON.

On 9/4/2013 3:27 PM, Mike Miller wrote:
 We are building a restful api, using 2.3.5 (although I don’t think the
 release level matters) and I am a bit confused on response handling
 within RestEasy:

 Right or wrong, we made most of our resource methods return Response,
 using the GenericEntity when we wanted to return a collection of
 objects.Testing up to now was in Chrome Advanced Rest Client.  We
 have our beans JAXB annotated and the resource ‘produces’ both
 application/xml and application/json.  For example:

 @GET

 @Produces({application/json, application/xml})

 *public*Response find(@ContextUriInfo uriInfo)

 {

setupQueryParms(uriInfo.getQueryParameters());

ListCustomer custList = *null*;

 *try*{

   custList = listAllPaginated();

} *catch*(FinderException e) {

   Log./getInstance/().error(FinderException caught
 :, e );

   throwException(Response.Status./NOT_FOUND/, Error
 searching customers);

}

GenericEntityListCustomer entity =
 *new*GenericEntityListCustomer(custList) {};

 *return*Response./ok/(entity).build();

 }

 Now, as part of writing JUnit test cases, I wanted to take the response
 I get back and put it back to object form so that I can then do a set of
 asserts against the object or list of objects returned.   I downloaded
 Jackson version 1.9.11 and tried to serialize/marshal the json back to
 object form but keep getting the following error:

 Exception in thread main
 _org.codehaus.jackson.map.exc.UnrecognizedPropertyException_:
 Unrecognized field Customer (Class
 com.jda.portfolio.api.rest.base.Customer), not marked as ignorable

 at [Source: C:\PPOSDevelopment\Trunk\API\REST\Server\response.json;
 line: 1, column: 15] (through reference chain:
 com.jda.portfolio.api.rest.base.Customer[Customer])

 Is there a difference between Jackson json and what RestEasy produces, from I 
 think Jettison?   I also took the example from User doc section 19.6.1 JSON 
 and JAXB collections/arrays



 [{foo:{@test:bill}},{foo:{@test:monica}}}] and tried to marshal 
 that back to object form – getting the same error.



 It seems like from Jackson, I would get something like:

 [{@test:bill},{@test:monica}}] for a ListFoo - the difference being 
 the {foo: } which looks like a wrapper for the object.



 I changed the code to return ListCustomer instead of the Response with 
 GenericEntity including the ListCustomer but the json looks the same.



 What am I doing wrong?



 Are we using the Response object incorrectly?  What’s really the difference 
 between returning ListCustomer vs Response with the ListCustomer in the 
 generic entity?



 I hope this is clear, but I can provide more details if needed.







 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk



 ___
 Resteasy-users mailing list
 Resteasy-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/resteasy-users


-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com

--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391iu=/4140/ostg.clktrk
___
Resteasy-users mailing list
Resteasy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/resteasy-users