[jboss-jira] [JBoss JIRA] (WFLY-2752) Using an injected UriInfo object by the JAX-RS runtime environment does not work
Christian Nedregård (JIRA)
issues at jboss.org
Thu Aug 14 01:48:29 EDT 2014
[ https://issues.jboss.org/browse/WFLY-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12992818#comment-12992818 ]
Christian Nedregård commented on WFLY-2752:
-------------------------------------------
We had the same problem in 8.1.0. For us this proved to be related to the fact that Wildfly will treat all JAX-RS beans as CDI beans by default: WFLY-2859.
[CdiPropertyInjector|http://grepcode.com/file/repository.jboss.org/nexus/content/repositories/releases/org.jboss.resteasy/resteasy-cdi/3.0.8.Final/org/jboss/resteasy/cdi/CdiPropertyInjector.java] will only perform @Context field and method injection on "non-CDI beans" and since all JAX-RS beans are treated as CDI beans by default this means no such injection is performed.
Fix was to add require-bean-descriptor="true" to server config as described in the first comment of WFLY-2859.
> Using an injected UriInfo object by the JAX-RS runtime environment does not work
> --------------------------------------------------------------------------------
>
> Key: WFLY-2752
> URL: https://issues.jboss.org/browse/WFLY-2752
> Project: WildFly
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: REST
> Affects Versions: 8.0.0.CR1
> Environment: Linux Fedora
> Reporter: Stan Zelivinski
> Assignee: Bill Burke
>
> The code that works perfectly in WildFly.8.0.0.Beta:
> package jdsu.vts.tcpcontroller.webservices.rest.resources;
> import java.net.URI;
> import javax.ws.rs.DELETE;
> import javax.ws.rs.GET;
> import javax.ws.rs.PUT;
> import javax.ws.rs.Path;
> import javax.ws.rs.PathParam;
> import javax.ws.rs.Produces;
> import javax.ws.rs.Consumes;
> import javax.ws.rs.core.Context;
> import javax.ws.rs.core.Response;
> import javax.ws.rs.core.UriInfo;
> import jdsu.vts.tcpcontroller.webservices.rest.application.V1_TCPController;
> import jdsu.vts.shared.transferobjects.V1_TCPSetups;
> @Path("/v1")
> public class V1_TCPControllerResource {
> @Context UriInfo uriInfo;
>
> @GET
> @Produces("application/json")
> /**
> *
> * @return
> */
> public Response getControllers() {
>
> //String json = String.valueOf(m_testsMap.size());
> return Response.ok(V1_TCPController.getCollection()).build();
> }
>
> @PUT
> @Path("{id}")
> @Produces("application/json")
> public Response addController(@PathParam("id") String id){
>
> V1_TCPController controller = V1_TCPController.find(id);
> if(controller != null) {
> return Response.status(Response.Status.CONFLICT).build();
> }
>
> controller = new V1_TCPController(id);
>
> URI uri = uriInfo.getAbsolutePathBuilder().path(id).build();
>
> return Response.created(uri).build();
> }
> }
> does not work in WildFly.8.0.0.CR1. uriInfo is null in the call.
> Please help.
> Stan
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
More information about the jboss-jira
mailing list