Zdeněk Obst created CXF-6190:
--------------------------------
Summary: 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):
var req : HttpServletRequest? = null
Context
fun setRequest(req : HttpServletRequest) {
this.req = req
}
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)