I\'m trying to marshal response containing ISO formatted timestamp like that:
{
...
\"time\" : \"2014-07-02T04:00:00.000000Z\"
...
}
into <
Eventually it works if I use solution that is commented in following snippet.
First of all, you are missing a dependency in your list, that you also have, which is the problem.
jersey-media-json-jackson
This module depends on the native Jackson module that has the JacksonJsonProvider
. When you register the JacksonFeature
(that comes with jersey-media-json-jackson
), it registers its own JacksonJaxbJsonProvider
, which seems to take precedence over any that you provide.
When you use the ContextResolver
, the JacksonJsonProvider
actually looks-up that ContextResolver
and uses it to resolve the ObjectMapper
. That's why it works. Whether you used the JacksonFeature
or registered your own JacksonJsonProvider
(without configuring an ObjectMapper
for it) the ContextResovler
would work.
Another thing about the jersey-media-json-jackson
module, it that it participates in Jersey's auto-discoverable mechanism, which registers it's JacksonFeature
. So even if you didn't explicitly register it, it would still be registered. The only ways to avoid it being registered are to:
jersey-media-json-jackson
. Just use the Jackson native module jackson-jaxrs-json-provider
. Thing about this though is that, the jersey-media-json-jackson
adds a couple features on top of the the native module, so you would lose those.Haven't tested, but it seems that if you use JacksonJaxbJsonProvider
instead of JacksonJsonProvider
, it might work. If you look at the source for the JacksonFeature, you will see that it checks for an already registered JacksonJaxbJsonProvider
. If there is one, it won't register it's own.
The one thing I'm not sure about with this is the auto-discoverable. The order in which it is registered, if it will affect whether or not it catches your registered JacksonJaxbJsonProvider
. Something you can test out.