-
Jul 11th, 2009, 01:04 PM
#1
BeanFactory not initialized or already closed - call 'refresh' before accessing beans
Hi all,
We have an issue in our project that is blocking our application in the test environment preventing us from releasing out application. we are using weblogic with cxf to make web service calls. The exception i am getting is:
Caused by: com.monsanto.tps.ws.common.ServiceRuntimeException : javax.xml.ws.soap.SOAPFaultException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
at com.monsanto.tps.ws.client.LazyInitProxy.invoke(La zyInitProxy.java:44)
... 40 more
Caused by: javax.xml.ws.soap.SOAPFaultException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWs ClientProxy.java:145)
at $Proxy181.getActivityInstance(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.monsanto.tps.ws.client.LazyInitProxy.invoke(La zyInitProxy.java:41)
... 40 more
Caused by: java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
at org.springframework.context.support.AbstractRefres hableApplicationContext.getBeanFactory(AbstractRef reshableApplicationContext.java:153)
at org.springframework.context.support.AbstractApplic ationContext.getBeanNamesForType(AbstractApplicati onContext.java:933)
at com.monsanto.tps.springframework.context.support.A pplicationContextUtils.getBeanNamesForTypeAccrossC lassLoaders(ApplicationContextUtils.java:21)
at com.monsanto.tps.ws.security.usernametoken.interce ptor.UsernameOutInterceptor.getUserNameProvider(Us ernameOutInterceptor.java:49)
at com.monsanto.tps.ws.security.usernametoken.interce ptor.UsernameOutInterceptor.handleMessage(Username OutInterceptor.java:37)
at org.apache.cxf.phase.PhaseInterceptorChain.doInter cept(PhaseInterceptorChain.java:236)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientIm pl.java:469)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientIm pl.java:299)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientIm pl.java:251)
at org.apache.cxf.frontend.ClientProxy.invokeSync(Cli entProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWs ClientProxy.java:124)
... 46 more
We have an out interceptor on the cxf bus that looks up the application context to find a user profile bean in the application context. This works in most situations when calling another service from our server. The one difference between this call and other calls is that this call is made from a thread.
Any help on this would be greatly appreciated.
Thanks,
Mir
-
Jul 14th, 2009, 05:42 AM
#2
Seems like a thread is trying to use a BeanFactory that was closed in other thread.
How the UsernameOutInterceptor gets a reference to the ApplicationContext?
I suggest you to see BeanFactoryReference and BeanFactoryLocator interfaces.
hope that help
cheers
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules