[ https://issues.apache.org/jira/browse/CXF-6190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14271707#comment-14271707 ]
Sergey Beryozkin commented on CXF-6190: --------------------------------------- https://git-wip-us.apache.org/repos/asf?p=cxf.git;a=blob;f=rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/tl/ThreadLocalHttpServletRequest.java;h=7f013d6a258036e9788f70165e826f5e7c31b843;hb=HEAD#l47 > 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 > > 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)