users@woodstock.java.net

Re: Woodstock+Seam -- Seam built-in components not working

From: Ken Paulsen <Ken.Paulsen_at_Sun.COM>
Date: Sun, 28 Oct 2007 20:41:56 -0700

Dan,

Since the concatenation of the String happens before calling your log()
call, it won't matter what log level he is using.

You might consider moving the log() call below your UIComponent check to
avoid this. You might also consider wrapping a log level check around
the log calls to avoid unnecessarily creating Strings (which may fail as
in this case).

If you'd like me to test / make any of these changes, let me know.

Thanks!

Ken

Dan Labrecque wrote:
> The EL resolver is defined via a faces-config file, so it is
> automatically enabled for Woodstock. Technically, you could override
> this at the application level (i.e. via your own faces-config.xml).
> For example, if there is a Seam resolver, you could ensure it is
> called first.
>
> <application>
>
> <el-resolver>com.sun.webui.jsf.faces.UIComponentELResolver</el-resolver>
> <el-resolver>com.sun.webui.jsf.faces.ThemeELResolver</el-resolver>
>
> <el-resolver>com.sun.webui.jsf.faces.DataProviderELResolver</el-resolver>
> </application>
>
> That said, your stack trace refers to line 72 of
> UIComponentELResolver. This particular line invokes a simple log
> utility class. Basically, we print out the class name and the property
> to be retrieved.
>
> 70: public Object getValue(ELContext context, Object base, Object
> property) {
> 71:
> 72: log("getValue(ctx, " + base + "," + property + ")");
>
> Our LogUtil uses standard J2SE logging, so I don't understand why Seam
> would be involved here?
>
> > at org.jboss.seam.Namespace.entrySet(Namespace.java:23)
> > at java.util.AbstractMap.toString(Unknown Source)
> > at java.lang.String.valueOf(Unknown Source)
> > at java.lang.StringBuilder.append (Unknown Source)
>
> I have a couple more questions for you:
>
> 1. Is logging enabled?
> 2. What version of Java are you using?
> 3. Do you have commons-logging.jar in your class path?
> 4. Would you be willing to test a new jar, providing we strip out the
> logging?
>
> Dan
>
> Indu Kurup wrote:
>> That is exactly what I don't understand. I haven't configured
>> anything specific to Woodstock anywhere. All that I have is the
>> Woodstock jar files. And the Woodstock EL Resolver is taking hold.
>> How is this happening? Is there any workaround?
>>
>> Thanks,
>> Indu
>>
>> On 10/21/07, *Venkatesh Babu* <Venkatesh.M_at_sun.com
>> <mailto:Venkatesh.M_at_sun.com>> wrote:
>>
>> Woodstock doesnt have any problem running on tomcat. But i havent
>> tried it out with seam on tomcat yet. (and also facelets).
>> But why should the woodstock EL resolver kick in for seam
>> components (ajax4jsf component set i assume from the stack trace)?
>>
>> -Venky
>>
>> Indu Kurup wrote:
>>>
>>> Currently we are using Seam 1.2.1 with Woodstock, JSF 1.2,
>>> Facelets 1.1.13 on Tomcat 6.0.10.
>>> Everything is working fine except for the built-in Seam
>>> components like
>>> 1. conversationList
>>> 2. localeSelector
>>> 3. messages
>>> I tried removing the Woodstock jar file webui-jsf.jar and i
>>> get the components working fine. Its the
>>> com.sun.webui.jsf.facesUIComponentELResolver thats throwing
>>> the exception.
>>> Is it the server? Have you tried running this combination in
>>> tomcat?
>>>
>>> Thanks,
>>> Indu
>>>
>>>
>>>
>>> On 10/18/07, *Venkatesh Babu* < Venkatesh.M_at_sun.com
>>> <mailto:Venkatesh.M_at_sun.com>> wrote:
>>>
>>> Hi Indu,
>>>
>>> Which version of Seam are you using? And are you using
>>> facelets?
>>> I was playing with Seam a few days before.. the version
>>> i used was
>>> jboss seam 2.0.0 CR2
>>> I modified the existing registration app to use
>>> woodstock components
>>> with JSP page rendering
>>> and i was able to run it on glassfish without any problem.
>>>
>>> -Venky
>>> Indu Kurup wrote:
>>> > I found that adding Woodstock jar files into the
>>> classpath makes Seam
>>> > built-in components not working.
>>> >
>>> >
>>> > I tried removing the Woodstock libraries and everything
>>> works fine.
>>> >
>>> > These are the jar files that i have
>>> > [list]1. dataprovider.jar
>>> > 2. dojo-0.4.3-ajax.jar
>>> > 3. json.jar
>>> > 4. prototype-1.5.0.jar
>>> > 5. webui-jsf.jar
>>> > 6. webui-jsf-suntheme.jar[/list]
>>> >
>>> > Below is the stacktrace
>>> >
>>> > [code]
>>> > java.lang.UnsupportedOperationException
>>> > at org.jboss.seam.Namespace.entrySet(Namespace.java:23)
>>> > at java.util.AbstractMap.toString(Unknown Source)
>>> > at java.lang.String.valueOf(Unknown Source)
>>> > at java.lang.StringBuilder.append (Unknown Source)
>>> > at
>>> > com.sun.webui.jsf.faces.UIComponentELResolver.getValue(UIComponentELResolver.java:72)
>>> > at
>>> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
>>> > at com.sun.faces.el.FacesCompositeELResolver.getValue
>>> > (FacesCompositeELResolver.java:64)
>>> > at
>>> org.apache.el.parser.AstValue.getValue(AstValue.java:97)
>>> > at
>>> > org.apache.el.ValueExpressionImpl.getValue
>>> (ValueExpressionImpl.java:186)
>>> > at
>>> > com.sun.faces.application.ValueBindingValueExpressionAdapter.getValue
>>> > (ValueBindingValueExpressionAdapter.java:102)
>>> > at org.jboss.seam.core.Expressions$1.getValue
>>> (Expressions.java:69)
>>> > at
>>> > org.jboss.seam.Component.getInstanceFromFactory(Component.java:1684)
>>> > at org.jboss.seam.Component.getInstance
>>> (Component.java:1633)
>>> > at org.jboss.seam.Component.getInstance
>>> (Component.java:1610)
>>> > at
>>> org.jboss.seam.Component.getInstance(Component.java:1604)
>>> > at
>>> org.jboss.seam.jsf.SeamELResolver.getValue(SeamELResolver.java
>>> :49)
>>> > at javax.el.CompositeELResolver.getValue
>>> (CompositeELResolver.java:53)
>>> > at
>>> > com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
>>> > at org.apache.el.parser.AstIdentifier.getValue
>>> (AstIdentifier.java:45)
>>> > at
>>> > org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
>>> > at
>>> > com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
>>> > at javax.faces.component.UIOutput.getValue
>>> (UIOutput.java:173)
>>> > at
>>> > com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)
>>> > at
>>> > com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue
>>> (HtmlBasicRenderer.java
>>> > :320)
>>> > at
>>> > com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
>>> > at
>>> > javax.faces.component.UIComponentBase.encodeEnd
>>> (UIComponentBase.java:836)
>>> > at javax.faces.component.UIComponent.encodeAll
>>> (UIComponent.java:896)
>>> > at
>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
>>> > at
>>> > com.sun.facelets.FaceletViewHandler.renderView
>>> (FaceletViewHandler.java:577)
>>> > at org.ajax4jsf.framework.ViewHandlerWrapper.renderView
>>> > (ViewHandlerWrapper.java:108)
>>> > at
>>> > org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java
>>> :256)
>>> > at
>>> > com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
>>> > at
>>> com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
>>> > at
>>> > com.sun.faces.lifecycle.LifecycleImpl.render
>>> (LifecycleImpl.java:144)
>>> > at
>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
>>> > at
>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>
>>> > at
>>> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>> > at
>>> org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter
>>> > (SeamFilter.java:63)
>>> > at
>>> org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
>>> > at
>>> > org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
>>> > at org.jboss.seam.web.ExceptionFilter.doFilter
>>> > (ExceptionFilter.java:57)
>>> > at
>>> > org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
>>> > at
>>> > org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java
>>> :79)
>>> > at
>>> org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter
>>> > (SeamFilter.java:49)
>>> > at
>>> org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
>>> > at
>>> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
>>> (ApplicationFilterChain.java:235)
>>> > at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter
>>> > (ApplicationFilterChain.java:206)
>>> > at
>>> > org.apache.catalina.core.StandardWrapperValve.invoke
>>> (StandardWrapperValve.java:228)
>>> > at
>>> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>>> >
>>> > at
>>> > org.apache.catalina.core.StandardHostValve.invoke(
>>> StandardHostValve.java :128)
>>> > at
>>> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
>>> > at org.apache.catalina.core.StandardEngineValve.invoke
>>> > (StandardEngineValve.java:109)
>>> > at
>>> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
>>> > at
>>> > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>> > at
>>> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process
>>>
>>> > (Http11Protocol.java:634)
>>> > at
>>> > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
>>> > at java.lang.Thread.run(Unknown Source)
>>> > [/code]
>>> >
>>> > I have no other configurations for Woodstock in my
>>> workspace.
>>> >
>>> > Does this mean that Seam cannot be used in combination
>>> with Woodstock.
>>> >
>>> > Thanks !
>>>
>>>
>>>
>>
>>
>