You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Marco Tenti (Jira)" <ji...@apache.org> on 2019/10/22 16:34:00 UTC

[jira] [Commented] (CXF-8119) Can't Inject "javax.ws.rs.core.Context" annotation with camel blueprint

    [ https://issues.apache.org/jira/browse/CXF-8119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16957213#comment-16957213 ] 

Marco Tenti commented on CXF-8119:
----------------------------------

After many test and sue case the interceptor management i popose seem not to work .
I'm open to any suggestion for solve this issue .
ty.

> Can't Inject "javax.ws.rs.core.Context" annotation with camel blueprint
> -----------------------------------------------------------------------
>
>                 Key: CXF-8119
>                 URL: https://issues.apache.org/jira/browse/CXF-8119
>             Project: CXF
>          Issue Type: Bug
>          Components: Bus, Core, JAX-RS, OSGi, Resources
>    Affects Versions: 3.2.7
>            Reporter: Marco Tenti
>            Priority: Major
>
> I have a REST Service project build for a Red Hat Fuse.
> it's a simple set up of a rest service with a "blueprint.xml" and the "cxf:rsServer" and it's work just fine.
> But i need to use the @Context annotation of javax.ws.rs and i ca't find a way to inject dynamically the @Context on my java class.
> A full project for test of the problem can be found here:
> [bug-load-context-annotation-blueprint|https://github.com/p4535992/bug-load-context-annotation-blueprint]
> My goal is to set the value of the field;
> {code:java}
> @javax.ws.rs.core.Context
> public javax.ws.rs.core.HttpHeaders httpHeaders;
> {code}
> Another strange bug is if i call the method:
> {code:java}
> 	@GET
> 	@Path("/ping")
> 	@Produces(MediaType.APPLICATION_JSON)
> 	@WebMethod(operationName = "ping")
> 	@WebResult(name = "Response")
> 	@ApiResponses(value = { 
>         	@ApiResponse(code = 200, message = "Success") ,
>         	@ApiResponse(code = 500, message = "Error") 
>         }
> 	)
> 	@ApiOperation( "Get operation with Response and @Default value")
> 	public Response ping() {
> 		logger.info("PING SIGNATURE SERVICE");
> 		return Response.ok().entity("PING SIGNATURE SERVICE").build();
> 	}
> }
> {code}
> it's work just fine , but if i call this (i just add the @Context HttpHeaders httpHeaders parameter on the method) :
> {code:java}
>  @GET
>  @Path("/ping")
>  @Produces(MediaType.APPLICATION_JSON)
>  @WebMethod(operationName = "ping")
>  @WebResult(name = "Response")
>  @ApiResponses(value =
> { @ApiResponse(code = 200, message = "Success") , @ApiResponse(code = 500, message = "Error") }
> )
>  @ApiOperation( "Get operation with Response and @Default value")
>  public Response ping(@Context HttpHeaders httpHeaders)
> { logger.info("PING SIGNATURE SERVICE"); return Response.ok().entity("PING SIGNATURE SERVICE").build(); }
> }
> {code}
> i get this error:
> {code}
> 415 Error: Unsupported Media Type
>  {code}
> Teh documentation say something about the attribute "propagateContexts" to true, but seem do nothing:
> {code:}
>  <from id="myRestSereer" uri="cxfrs:bean:myRestSereer?performInvocation=true&amp;bindingStyle=SimpleConsumer&amp;propagateContexts=true"/>
> {code}
> ANOTHER example i can't undestand, the first method is injected with succes, the second give me the "415 Error: Unsupported Media Type":
> {code:java}
> 	/**
> 	 * THIS WORK
> 	 */
> 	@GET
> 	@Path("/getheader")
> 	public Response getHeaderDetails(
> 			@HeaderParam("User-Agent") String userAgent,
> 			@HeaderParam("Content-Type") String contentType,
> 			@HeaderParam("Accept") String accept
> 			) {
> 		String header = "User-Agent: " + userAgent +
> 				"\nContent-Type: " + contentType +
> 				"\nAccept: " + accept;
> 		return Response.status(200).entity(header).build();
> 	}
> 	/**
> 	 * THIS NOT WORK error "415 Error: Unsupported Media Type"
> 	 */
> 	@GET
> 	@Path("/getallheader")
> 	public Response getAllHeader(@Context HttpHeaders httpHeaders) {
> 		// local variables
> 		StringBuffer stringBuffer = new StringBuffer();
> 		String headerValue = "";
> 		for(String header : httpHeaders.getRequestHeaders().keySet()) {
> 			headerValue = httpHeaders.getRequestHeader(header).get(0);
> 			stringBuffer.append(header + ": " + headerValue + "\n");
> 		}
> 		logger.info(stringBuffer.toString());
> 		return Response.status(200).entity(stringBuffer.toString()).build();
> 	}
> {code}
> Anyone know what i'm doing wrong with camel-blueprint?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)