[JBoss Seam] - Re: Classloading problem I think.
by x-explorer
anonymous wrote :
| We've got the same problem with our seam 1.1 project running on JBoss 4.0.5 (current jems 1.2 installer).
|
| We get the following error:
|
| javax.faces.el.EvaluationException: /view/manage/user_search.xhtml @118,174 value="#{messages[selectedObject.title]} #{selectObject.academicTitle}": Cannot get value for expression '#{org.jboss.seam.core.messages}'
| at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60)
| at javax.faces.component.UICommand.getValue(UICommand.java:170)
| at org.apache.myfaces.shared_impl.renderkit.html.HtmlLinkRendererBase.encodeBegin(HtmlLinkRendererBase.java:93)
| at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:512)
| at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:433)
| at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419)
| at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:440)
| at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.renderColumnBody(HtmlTableRendererBase.java:332)
| at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeColumnChild(HtmlTableRendererBase.java:301)
| at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:277)
| at org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:123)
| at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
| at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:234)
| at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
| at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
| at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:580)
| at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
| at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:222)
| at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:32)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75)
| at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
| at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
| at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
| at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
| at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
| at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: java.lang.NullPointerException
| at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:620)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
| at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:464)
| at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
| at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
| at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
| at org.jboss.seam.jsf.SeamApplication11.getPropertyResolver(SeamApplication11.java:168)
| at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:532)
| at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
| at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
| at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:51)
| at org.jboss.seam.Component.getInstanceFromFactory(Component.java:1666)
| at org.jboss.seam.Component.getInstance(Component.java:1615)
| at org.jboss.seam.Component.getInstance(Component.java:1592)
| at org.jboss.seam.jsf.SeamVariableResolver.resolveVariable(SeamVariableResolver.java:46)
| at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
| at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:134)
| at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)
| at com.sun.el.parser.AstValue.getValue(AstValue.java:106)
| at com.sun.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:46)
| at com.sun.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:51)
| at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
| at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
| at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
| ... 54 more
|
|
| The messages are injected using the following code:
|
| @In(create = true)
| protected Map<String, String> messages;
|
| The error only occurs occasionally and can be reproduced by fast clicking through the pages for some time.
|
Yes, I'm getting the same problems. Anybody has suggestion?
BTW: here is the log information that saying couldn't find component org.
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.Component] trying to inject with hierarchical context search: facesMessages
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] resolving name: org
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.Component] seam component not found: org
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] could not resolve name
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.intercept.RootInterceptor] intercepted: entityRegistrar.PRE_DESTORY
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.core.Events] Processing event:org.jboss.seam.preRemoveVariable.entityRegistrar
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.core.Events] Processing event:org.jboss.seam.postRemoveVariable.entityRegistrar
| 2007-01-25 16:52:05,640 DEBUG [org.jboss.seam.interceptors.RemoveInterceptor] Stateful component was removed: entityRegistrar
| 2007-01-25 16:52:05,640 ERROR [org.jboss.seam.core.Exceptions] redirecting to debug page
| javax.ejb.EJBException: javax.faces.el.EvaluationException: Cannot get value for expression '#{org.jboss.seam.core.facesMessages}'
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
| at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4006555#4006555
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4006555
19 years, 2 months
[Messaging, JMS & JBossMQ] - JBoss JMS vs. Home-grown scaling solution... Which is better
by jhilgedick
All,
I could really use some help on the following question - I need to figure out if JMS in a clustered environment is really the solution to my problem...
I have an application that is deployed to a number of servers in a jboss cluster. I also have a bunch of clients that are writing to a jms queue in the cluster - they are writing (producing) these messages very quickly. My understanding is that in a jboss cluster, the queue isn't really replicated (available) across all servers in the cluster - which means that every client (producer) gets its jms "message" piped to a *single* server in the cluster. Is that correct?
My understanding is that if the "designated" jms server goes down, another node in the cluster will "take its place". Is that correct? If this is correct it means that as I scale up the number of clients (producers), they are all going to be trying to communicate with the one *single* designated jms node. Is that correct?
It seems to me I'd be better off by creating a servlet in my application that is replicated across all nodes in the cluster - and this servlet puts the messages into a db table (directly or through hibernate, etc). This is what JBoss JMS does under the covers *anyway*, isn't it? It's how JBoss makes the messages persistent, right?
Then I could have another servlet deployed on *another* cluster of servers. These servlets would "poll" the db where the messages were written (by the nodes in another cluster), attempt to mark them as "consumed" in the db and return them to the caller (consumer) if they are the one that "got the message". I realize that polling isn't the greatest solution in the world - but we can always add more nodes to the "read" cluster and space the polling...
Wouldn't something like this scale better than JBoss JMS clustering? Why not? It seems like JBoss's JMS solution is great for failover - but that it just doesn't scale...
Please show me the error of my ways...
Thanks very much!
-john
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4006554#4006554
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4006554
19 years, 2 months