Hi.
I've encountered an interesting problem. I am having a problem getting
grizzly to inject spring beans into my service layer. I've traced down the
problem to the registering of the spring beans with jersey. In the
SpringComponentProviderFactory.registerSpringBeans there is a check to see
if the class coming from the spring context has the @Path annotation on it.
Well in my case I've noticed that the class Type being set is actually:
class $Proxy19
and not the actual class. This is causing it not to find the @annotation on
the class itself. I believe this proxy is being caused by my @Transactional
(and @cacheable) calls as if I remove the annotation I do not get the
nullpointer error. I tried to "trick" the check by adding the @Path
annotation to the interface, but then I get the following exception.
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
at
com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
at
com.sun.jersey.spi.spring.container.servlet.SpringServlet.initiate(SpringServlet.java:117)
at
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
at
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
at
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
at
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at
com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:456)
at
com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:395)
at
com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:349)
at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
at
com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:183)
at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at
com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Unknown Source)
I am using Jersey 1.8 and Grizzy 1.9.35
--
View this message in context: http://jersey.576304.n2.nabble.com/jersey-test-spring-Transactional-tp7308565p7308565.html
Sent from the Jersey mailing list archive at Nabble.com.