[jboss-user] [JBoss Seam] - CLUSTER wide EJBException: Invalid (i.e. remote) invocation

fguerzoni do-not-reply at jboss.com
Mon Nov 19 05:51:30 EST 2007


Seam 2.0.0.GA
JBoss 4.2.2.GA
Win xp

Hi,
I managed to run a cluster with 2 nodes using:
- Apache (mod_jk) as load balancer
- Tomcat and JBoss in bundle.

All goes very well if I use session context Java beans which replicate their state in cluster. By the way: GREAT WORK!

The problems arise when I try to use session EJB3 (both stateful and stateless) instead of Java beans. 
I got the following exception
anonymous wrote : javax.ejb.EJBException: Invalid (i.e. remote) invocation of local interface (null container)
because the proxy uses the remote interface to call the bean.
I've declared bean interfaces as local in components.xml. So the exception.

I think that the problem is load balancing.
If an Ejb client uses its proxy to do balancing it obviously needs to call remote interfaces.
But when I delegate load balancing to external, when the Tomcat instance is called then next jboss bean calls should always be local, as declared in components.xml and for performance reasons.
I'm no able to manage the whole system to do that.
Is it possible? I think so.

I'd like to use Ejb3 for performance reason. I read that that they are more optimized than pojo bean. Is this still true?
What about the passivation of Java beans? Do they scale well when server load increase? Passivation is an Ejb feature. I don't know if java beans have passivation too.



Here is my stack trace

anonymous wrote : type Exception report
  | 
  | message
  | 
  | description The server encountered an internal error () that prevented it from fulfilling this request.
  | 
  | exception
  | 
  | javax.servlet.ServletException: /workspace.xhtml: Error reading 'progr' on type org.javassist.tmp.java.lang.Object_$$_javassist_0
  | 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
  | 	org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  | 	cbi.filters.compression.GZIPFilter.doFilter(GZIPFilter.java:19)
  | 	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 
  | root cause
  | 
  | javax.el.ELException: /workspace.xhtml: Error reading 'progr' on type org.javassist.tmp.java.lang.Object_$$_javassist_0
  | 	com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:48)
  | 	com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
  | 	com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
  | 	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  | 	com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
  | 	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
  | 	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
  | 	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
  | 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
  | 	org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  | 	cbi.filters.compression.GZIPFilter.doFilter(GZIPFilter.java:19)
  | 	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 
  | root cause
  | 
  | javax.ejb.EJBException: Invalid (i.e. remote) invocation of local interface (null container) for jboss.j2ee:ear=CBI_FE.ear,jar=CBI_FE.jar,name=WorkspaceActionBean,service=EJB3,VMID=f0ed2a6d7fb07688:7df1788e:1164e177b30:-7ffc
  | 	org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:116)
  | 	$Proxy347.getProgr(Unknown Source)
  | 	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	java.lang.reflect.Method.invoke(Method.java:585)
  | 	org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
  | 	org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
  | 	org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)
  | 	org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
  | 	org.jboss.seam.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:40)
  | 	org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
  | 	org.jboss.seam.ejb.RemoveInterceptor.aroundInvoke(RemoveInterceptor.java:41)
  | 	org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
  | 	org.jboss.seam.core.SynchronizationInterceptor.aroundInvoke(SynchronizationInterceptor.java:32)
  | 	org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
  | 	org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
  | 	org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)
  | 	org.javassist.tmp.java.lang.Object_$$_javassist_0.getProgr(Object_$$_javassist_0.java)
  | 	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	java.lang.reflect.Method.invoke(Method.java:585)
  | 	javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
  | 	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
  | 	com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
  | 	org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
  | 	org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
  | 	org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
  | 	com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:184)
  | 	com.sun.facelets.el.ELText$ELTextComposite.writeText(ELText.java:108)
  | 	com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)
  | 	com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
  | 	com.sun.facelets.compiler.UILeaf.encodeAll(UILeaf.java:149)
  | 	javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
  | 	com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
  | 	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
  | 	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
  | 	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
  | 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
  | 	org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
  | 	org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
  | 	org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  | 	cbi.filters.compression.GZIPFilter.doFilter(GZIPFilter.java:19)
  | 	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 
  | note The full stack trace of the root cause is available in the JBossWeb/2.0.1.GA logs.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4105969#4105969

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4105969



More information about the jboss-user mailing list