cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "KARR, DAVID" <dk0...@att.com>
Subject Why is CXF creating a new instance of my controller for each request?
Date Thu, 04 Aug 2016 17:35:07 GMT
I'm building a new CXF/JAX-RS/Spring app based on one that I built a few years ago, but with
the latest versions of CXF and Spring (3.1.7 and 4.3.2, respectively).

I finally thought I had gotten my controller, service, and DAO all wired together, but then
I noticed that when I got into the controller method after handling a web request, the service
object was null, even though I saw the setter breakpoint being hit.  I then discovered that
CXF appears to be creating a new instance of the controller for every request, and the controller
instance that it uses isn't wired up.

I'm running this in TomEE 7.0.1.  The old app was running in WebLogic.

When I hit the breakpoint in the controller constructor after sending the request, I see the
following stacktrace:

---------------
WebProjController.<init>() line: 44	
NativeConstructorAccessorImpl.newInstance0(Constructor<?>, Object[]) line: not available
[native method]	
NativeConstructorAccessorImpl.newInstance(Object[]) line: not available	
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: not available	
Constructor<T>.newInstance(Object...) line: not available	
CdiResourceProvider$DefaultBeanCreator.newInstance() line: 315	
CdiResourceProvider$DefaultBeanCreator.create() line: 321	
OpenEJBPerRequestPojoResourceProvider(CdiResourceProvider).getInstance(Message) line: 171

CxfRsHttpListener.getServiceObject(Message) line: 1036	
CxfRsHttpListener.access$200(CxfRsHttpListener, Message) line: 142	
CxfRsHttpListener$4.getServiceObject(Message) line: 909	
CxfRsHttpListener$4(AbstractValidationInterceptor).handleMessage(Message) line: 59	
PhaseInterceptorChain.doIntercept(Message) line: 308	
ChainInitiationObserver.onMessage(Message) line: 121	
---------------

Any idea how to make this use the existing Spring singleton instead of creating a new instance?

Mime
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message