[
https://issues.apache.org/jira/browse/WINK-236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12786870#action_12786870
]
Michael Elman commented on WINK-236:
------------------------------------
It works, because CustomerList is annotated with @XmlRootElement, so it is
handled by JAXB provider.
However, there is no JAXB provider that handles collections.
Thinking about it, I cannot define the correct behavior of such a provider.
What should it do with element 'customer' if it has no information about the
root element 'customers'? It cannot create output like:
{code}
<customer>...</customer>
<customer>...</customer>
<customer>...</customer>
<customer>...</customer>
{code}
Since it won't be a valid xml.
Anyway, about your bug: it's not a Generics problem. The problem is that you
don't have provider that can handle collections of JAXB objects. Wink doesn't
contains such a provider out of the box, but it's not a bug, since such a
provider is not required by JAX-RS spec.
Therefore, this issue is invalid and should be closed.
If you want, you can open a feature request for JAXB provider that can handle
collections, but you'll need to define a behavior of such a provider.
> Generics not usable as return type
> ----------------------------------
>
> Key: WINK-236
> URL: https://issues.apache.org/jira/browse/WINK-236
> Project: Wink
> Issue Type: Bug
> Components: Providers
> Affects Versions: 1.0
> Reporter: Juergen Zimmermann
>
> I want to use a resource's method as follows:
> @GET
> @Path("/customers")
> @Produces({APPLICATION_XML, TEXT_XML, APPLICATION_JSON})
> public List<Customer> findCustomers(@QueryParam("lastname") @DefaultValue("")
> String lastname, @Context HttpHeaders headers) throws ...
> 09:39:14,839 ERROR [FlushResultHandler] Could not find a writer or
> DataSourceProvider for java.util.ArrayList type and application/xml mediaType.
> 09:39:14,845 ERROR [RequestProcessor] WebApplicationException (500 - Internal
> Server Error) occured during the handlers chain invocation
> javax.ws.rs.WebApplicationException
> at
> org.apache.wink.server.internal.handlers.FlushResultHandler.handleResponse(FlushResultHandler.java:210)
> at
> org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:38)
> at
> org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:39)
> at
> org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.handlers.AbstractHandler.handleResponse(AbstractHandler.java:39)
> at
> org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:26)
> at
> org.apache.wink.server.handlers.ResponseHandlersChain.handle(ResponseHandlersChain.java:22)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:61)
> at
> org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:48)
> at
> org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:158)
> at
> org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:133)
> at
> org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:105)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
> at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
> at
> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
> at
> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> at
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
> at
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:905)
> at
> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:592)
> at
> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2036)
> at java.lang.Thread.run(Thread.java:717)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.