users@jersey.java.net

[Jersey] Re: Joda DateTime

From: Michael Iles <michael.iles_at_gmail.com>
Date: Tue, 4 Feb 2014 12:18:20 -0500

Ah, got it. Are you using Jersey 1 or 2?

You're talking about user-defined parameters, right?

http://codahale.com/what-makes-jersey-interesting-parameter-classes/
https://jersey.java.net/documentation/latest/user-guide.html#d0e1810

It might be because Joda's DateTime class doesn't have a String
constructor... you could subclass it to add one, or wrap it in a
DateTimeParam class that has the right constructor.

Mike


On 4 February 2014 12:02, Robert DiFalco <robert.difalco_at_gmail.com> wrote:
> It's not an issue of jackson and joda. That's easy it's an issue of a Joda
> Time Query parameter in Jersey. It's a different issue/solution. For now I'm
> making the query parameter a string and parsing it immediately with Joda.
>
>
> On Tue, Feb 4, 2014 at 8:54 AM, Michael Iles <michael.iles_at_gmail.com> wrote:
>>
>> I second the vote for ISO 8601.
>>
>> Jackson and Joda Time are straightforward to use in Jersey 2.0:
>>
>> <!-- Jackson provider for Jersey -->
>>
>> <dependency>
>> <groupId>com.fasterxml.jackson.jaxrs</groupId>
>> <artifactId>jackson-jaxrs-json-provider</artifactId>
>> <version>2.2.3</version>
>> </dependency>
>>
>> <!-- Jackson provider for Joda Time -->
>>
>> <dependency>
>> <groupId>com.fasterxml.jackson.datatype</groupId>
>> <artifactId>jackson-datatype-joda</artifactId>
>> <version>2.1.1</version>
>> </dependency>
>>
>> However, Jersey 2.0 makes it hard to configure Jackson, e.g. if you
>> want to disable SerializationFeature.WRITE_DATES_AS_TIMESTAMPS (which
>> I would recommend). See other postings in this forum for details.
>>
>> Mike.
>>
>> On 4 February 2014 11:01, cowwoc <cowwoc_at_bbs.darktech.org> wrote:
>> > I'd recommend ISO8601 instead: http://en.wikipedia.org/wiki/ISO_8601
>> >
>> > In Jersey 1.0, it was pretty easy to configure Jackson to serialize this
>> > back and forth. No idea about Jersey 2.0 though.
>> >
>> > Gili
>> >
>> >
>> > On 04/02/2014 10:43 AM, Paulo Pires wrote:
>> >
>> > Hi Robert,
>> >
>> > Why don't you use timestamp in milliseconds (UTC) and transform with
>> > Joda
>> > Time?
>> >
>> > PP
>> >
>> >
>> > On Mon, Feb 3, 2014 at 9:30 AM, Jakub Podlesak
>> > <jakub.podlesak_at_oracle.com>
>> > wrote:
>> >>
>> >> Hi Robert,
>> >>
>> >> There is no such Jersey feature to enable Joda DateTime as a query
>> >> param
>> >> available.
>> >> You can however write your own JAX-RS ParamConverter provider and
>> >> register it via
>> >> ParamConverterProvider as documented here:
>> >>
>> >>
>> >>
>> >> https://jersey.java.net/apidocs/latest/jersey/javax/ws/rs/ext/ParamConverter.html
>> >>
>> >> HTH,
>> >>
>> >> ~Jakub
>> >>
>> >> On 02 Feb 2014, at 00:57, Robert DiFalco <robert.difalco_at_gmail.com>
>> >> wrote:
>> >>
>> >> I'm probably being dense here but how do I use Joda DateTime as a
>> >> QueryParam? I have the JodaModule setup with Jackson, but I guess I
>> >> need
>> >> more than that. I googled around and found solutions that required all
>> >> kinds
>> >> of code. Isn't there a JerseyFeature or some such that will allow me to
>> >> use
>> >> Joda DateTime as a QueryParam?
>> >>
>> >> The error I get is this:
>> >>
>> >> org.glassfish.jersey.server.model.ModelValidationException: Validation
>> >> of
>> >> the application resource model has failed during application
>> >> initialization.|[[FATAL] No injection source found for a parameter of
>> >> type
>> >> public java.lang.String
>> >>
>> >> com.myapp.rest.service.DevicesResource.getExpiredDevices(org.joda.time.DateTime)
>> >> throws java.lang.Exception
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> > Paulo Pires
>> >
>> >
>
>