[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