users@woodstock.java.net

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

From: Dan Labrecque <Dan.Labrecque_at_Sun.COM>
Date: Mon, 29 Oct 2007 10:34:45 -0500

Thanks, Ken. I've sent a custom woodstock jar to Indu (i.e., without the
EL resolver), so we'll see if it makes any difference. If it does, we
can try removing logging only. I'll keep you posted.

Dan

Ken Paulsen wrote:
>
> 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 !
>>>>
>>>>
>>>>
>>>
>>>
>>