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

Zdeněk Obst commented on CXF-6190:
----------------------------------

I'm sorry for that ThreadLocal one. I "mis-looked" the implements part on the 
next line.

Anyway with the interface, are right! When I added the setter also to the 
interface (not only on implementing class), everything worked fine.
Thank you for the help. I'm not sure if this is according to the spec (that you 
must have your @Context injection also in interface) but it is OK for me. It 
slightly "messes up" the interface but it is acceptable/

> HttpServletRequest injection via Context in setter
> --------------------------------------------------
>
>                 Key: CXF-6190
>                 URL: https://issues.apache.org/jira/browse/CXF-6190
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 3.0.3
>            Reporter: Zdeněk Obst
>            Assignee: Sergey Beryozkin
>             Fix For: NeedMoreInfo
>
>
> I'm trying to inject HttpServletRequest to my JAX-RS resource via @Context 
> annotation. It works fine if I inject it via method parameter. But I don't 
> want to "mess" my interfaces with that so I'd like to inject it via setter.
> I use this simple method (I'm using Kotlin but I the issue should be the same 
> for Java):
> {code:java}
>     var req : HttpServletRequest? = null
>     Context
>     fun setRequest(req : HttpServletRequest) {
>         this.req = req
>     }
> {code}
> The thing is, that the setter is called via reflection in 
> org.apache.cxf.jaxrs.utils.InjectionUtils in method injectThroughMethod. The 
> method name is correct but as parameter value is instance of 
> ThreadLocalHttpServletRequest which clearly is not HttpServletRequest (it is 
> not inherited class) so this gets thrown: 
> java.lang.IllegalArgumentException: object is not an instance of declaring 
> class



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to