You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wink.apache.org by "Mike Rheinheimer (JIRA)" <ji...@apache.org> on 2010/09/03 16:39:34 UTC
[jira] Resolved: (WINK-310) Annotations inherited by a resource
class should determine parameter type from the subclass, not the superclass
[ https://issues.apache.org/jira/browse/WINK-310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Rheinheimer resolved WINK-310.
-----------------------------------
Fix Version/s: 1.1.2
Resolution: Fixed
SVN rev 992311.
> Annotations inherited by a resource class should determine parameter type from the subclass, not the superclass
> ---------------------------------------------------------------------------------------------------------------
>
> Key: WINK-310
> URL: https://issues.apache.org/jira/browse/WINK-310
> Project: Wink
> Issue Type: Improvement
> Components: Server
> Affects Versions: 1.1
> Reporter: Nick Maynard
> Assignee: Mike Rheinheimer
> Fix For: 1.1.2
>
> Attachments: WINK-310.patch
>
>
> I have a generic service interface, like so:
> public interface GenericService<T> {
> @POST
> @Consumes(MediaType.APPLICATION_JSON)
> public void doSomething(T obj);
> }
> And an implementation of the interface, like so:
> @Path("/impl")
> public class Impl implements GenericService<RealJAXBType> {
> public void doSomething(RealJAXBType obj) {
> // blah blah
> }
> }
> RealJAXBType is annotated as a JAXB XMLRootElement. For information's
> sake, I'm using Apache Wink 1.1 with Jackson 1.5.5.
> When I call the service exposed by the Wink servlet, Wink attempts to
> deserialize the passed JSON content to an HashMap of some description, not
> a RealJAXBType. I assume that's because the @POST annotation is on the
> generic interface. My guess is that Wink picks up the "class" of T, which
> is of course Object (as generic type T isn't scoped), and based on this,
> attempts a best-effort conversion into a HashMap, which is incompatible
> with the implementation's type of RealJAXBType.
> I've verified this happens for an abstract superclass as well as an
> interface, so I guess it's to do with the annotation inheritance code.
> This seems unintuitive - I'd certainly expect Wink to look at the
> implementation parameter's class when deciding what to attempt to
> deserialise the JSON content into. Ideally, I'd like Wink to heed the
> type of the implementation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.