
Originally Posted by
olli
I'm trying to use jee:remote-slsb with Weblogic 10 EJB3. This configuration seems to work with Spring 2.5.5:
<jee:remote-slsb id="arenaService"
jndi-name="test.TestService#com.my.myapp.test.TestServi ce"
business-interface="com.my.myapp.test.TestService"
cache-home="true"
lookup-home-on-startup="true"
resource-ref="false"
home-interface="com.my.myapp.test.TestService"
refresh-home-on-connect-failure="true"
environment-ref="environment" />
However, if I restart the EJB application to test refresh-home-on-connect-failure, I get the following error:
63010 [main] DEBUG simple.RemoteTest - [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown; nested exception is: weblogic.work.WorkRejectedException: [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown
javax.ejb.EJBException: [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown; nested exception is: weblogic.work.WorkRejectedException: [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown
weblogic.work.WorkRejectedException: [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown
at weblogic.rjvm.ResponseImpl.unmarshalReturn(Respons eImpl.java:221)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicR emoteRef.java:223)
at com.my.myapp.test.impl.TestService_900zbw_TestServ iceImpl_1030_WLStub.getBalance(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 weblogic.ejb.container.internal.RemoteBusinessIntf Proxy.invoke(RemoteBusinessIntfProxy.java:64)
at $Proxy0.getBalance(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 org.springframework.remoting.rmi.RmiClientIntercep torUtils.invokeRemoteMethod(RmiClientInterceptorUt ils.java:108)
at org.springframework.ejb.access.SimpleRemoteSlsbInv okerInterceptor.doInvoke(SimpleRemoteSlsbInvokerIn terceptor.java:98)
at org.springframework.ejb.access.AbstractRemoteSlsbI nvokerInterceptor.invokeInContext(AbstractRemoteSl sbInvokerInterceptor.java:137)
at org.springframework.ejb.access.AbstractSlsbInvoker Interceptor.invoke(AbstractSlsbInvokerInterceptor. java:188)
at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(ReflectiveMethodInvocation.java :171)
at org.springframework.aop.framework.JdkDynamicAopPro xy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.getBalance(Unknown Source)
at simple.RemoteTest.pingTest(RemoteTest.java:74)
at simple.RemoteTest.main(RemoteTest.java:63)
javax.ejb.EJBException: [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown; nested exception is: weblogic.work.WorkRejectedException: [WorkManager:002916]Request belonging to WorkManager default, application myapp is rejected as the WorkManager is shutdown
at weblogic.ejb.container.internal.RemoteBusinessIntf Proxy.invoke(RemoteBusinessIntfProxy.java:81)
at $Proxy0.getBalance(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 org.springframework.remoting.rmi.RmiClientIntercep torUtils.invokeRemoteMethod(RmiClientInterceptorUt ils.java:108)
at org.springframework.ejb.access.SimpleRemoteSlsbInv okerInterceptor.doInvoke(SimpleRemoteSlsbInvokerIn terceptor.java:98)
at org.springframework.ejb.access.AbstractRemoteSlsbI nvokerInterceptor.invokeInContext(AbstractRemoteSl sbInvokerInterceptor.java:137)
at org.springframework.ejb.access.AbstractSlsbInvoker Interceptor.invoke(AbstractSlsbInvokerInterceptor. java:188)
at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(ReflectiveMethodInvocation.java :171)
at org.springframework.aop.framework.JdkDynamicAopPro xy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.getBalance(Unknown Source)
at simple.RemoteTest.pingTest(RemoteTest.java:74)
at simple.RemoteTest.main(RemoteTest.java:63)
63011 [main] DEBUG simple.RemoteTest - waiting for execution
It seems that if bean reference is stale Weblogic throws EJBException which does not cause Spring to refresh the home. Without caching everything works as expected.
Can someone tell if this can be fixed or worked around?