[ https://issues.apache.org/jira/browse/CXF-6190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14272572#comment-14272572 ]
Sergey Beryozkin commented on CXF-6190: --------------------------------------- I think I know what it is; introduce an interface like Injectable, have a "@Context setHttpServletRequest(HttpServletRequest req)" on that interface and have your service bean implementing it. This should fix it. Your service bean is most likely a proxy object > 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)