myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cagatay Civici <cagatay.civ...@gmail.com>
Subject Re: Tomahawk + Trinidad + Facelets
Date Tue, 07 Apr 2009 09:00:31 GMT
You need to commons fileupload to your classpath.

On Tue, Apr 7, 2009 at 9:44 AM, Eisenträger, Tobias <
Tobias.Eisentraeger@arag.de> wrote:

> Hello everyone,
>
> I have a working configuration with Trinidad+Facelets with the JSF 1.2
> versions.
> Now I would like to add some Tomahawk components to that but when I add the
> ExtensionsFilter to the web.xml I get the following error:
>
> Error 500: Filter [MyFacesExtensionsFilter]: filter is unavailable.
>
> Does anyone have a clue why it might not work? It looks like the fileUpload
> Component cant be loaded from the resource bundle. Is there anything else I
> need to configure?
>
> Thank you.
>
> Console log:
>
> [07.04.09 10:35:30:640 CEST] 0000001f ServletWrappe I   SRVE0242I:
> [WDMS_InDocFlow_EAR_NewWeb] [/WDMS_InDocFlow_NewWeb] [faces]:
> Initialisierung erfolgreich.
> [07.04.09 10:35:30:718 CEST] 0000001f ServiceLogger I
> com.ibm.ws.ffdc.IncidentStreamImpl initialize FFDC0009I: FFDC hat die
> Datenstromdatei
> C:\Programme\ibm\SDP70\runtimes\base_v61\profiles\Icefaces\logs\ffdc\server1_0000001f_09.04.07_10.35.30_0.txt
> für das Ereignis geöffnet.
> [07.04.09 10:35:30:734 CEST] 0000001f ServiceLogger I
> com.ibm.ws.ffdc.IncidentStreamImpl resetIncidentStream FFDC0010I: FFDC hat
> die Datenstromdatei
> C:\Programme\ibm\SDP70\runtimes\base_v61\profiles\Icefaces\logs\ffdc\server1_0000001f_09.04.07_10.35.30_0.txt
> für das Ereignis geschlossen.
> [07.04.09 10:35:30:734 CEST] 0000001f ServiceLogger I
> com.ibm.ws.ffdc.IncidentStreamImpl open FFDC0009I: FFDC hat die
> Datenstromdatei
> C:\Programme\ibm\SDP70\runtimes\base_v61\profiles\Icefaces\logs\ffdc\server1_0000001f_09.04.07_10.35.30_1.txt
> für das Ereignis geöffnet.
> [07.04.09 10:35:30:874 CEST] 0000001f ServiceLogger I
> com.ibm.ws.ffdc.IncidentStreamImpl resetIncidentStream FFDC0010I: FFDC hat
> die Datenstromdatei
> C:\Programme\ibm\SDP70\runtimes\base_v61\profiles\Icefaces\logs\ffdc\server1_0000001f_09.04.07_10.35.30_1.txt
> für das Ereignis geschlossen.
> [07.04.09 10:35:30:874 CEST] 0000001f ServiceLogger I
> com.ibm.ws.ffdc.IncidentStreamImpl open FFDC0009I: FFDC hat die
> Datenstromdatei
> C:\Programme\ibm\SDP70\runtimes\base_v61\profiles\Icefaces\logs\ffdc\server1_0000001f_09.04.07_10.35.30_2.txt
> für das Ereignis geöffnet.
> [07.04.09 10:35:30:874 CEST] 0000001f ServiceLogger I
> com.ibm.ws.ffdc.IncidentStreamImpl resetIncidentStream FFDC0010I: FFDC hat
> die Datenstromdatei
> C:\Programme\ibm\SDP70\runtimes\base_v61\profiles\Icefaces\logs\ffdc\server1_0000001f_09.04.07_10.35.30_2.txt
> für das Ereignis geschlossen.
> [07.04.09 10:35:30:874 CEST] 0000001f WebApp        E   [Servlet
> Error]-[faces]: java.lang.NoClassDefFoundError:
> org.apache.commons.fileupload.FileUpload
>        at
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:282)
>        at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
>        at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
>        at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
>        at
> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:832)
>        at
> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:679)
>        at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:565)
>        at
> com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
>        at
> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3440)
>        at
> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267)
>        at
> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815)
>        at
> com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1461)
>        at
> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:118)
>        at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
>        at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387)
>        at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267)
>        at
> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
>        at
> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
>        at
> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
>        at
> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
>        at
> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
>        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
>        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195)
>        at
> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743)
>        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873)
>        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1473)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.commons.fileupload.FileUpload
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:496)
>        at
> com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:132)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:631)
>        at
> com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:87)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:597)
>        at
> com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
>        at
> com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:54)
>        at
> com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:394)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:597)
>        ... 26 more
>
> Web.xml:
> <?xml version = '1.0' encoding = 'ISO-8859-1'?>
>
> <web-app xmlns="http://java.sun.com/xml/ns/javaee"
>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>        version="2.5">
>
>        <filter>
>                <filter-name>MyFacesExtensionsFilter</filter-name>
>                <filter-class>
>                        org.apache.myfaces.webapp.filter.ExtensionsFilter
>                </filter-class>
>                <init-param>
>                        <param-name>maxFileSize</param-name>
>                        <param-value>20m</param-value>
>                </init-param>
>        </filter>
>
>        <filter-mapping>
>                <filter-name>MyFacesExtensionsFilter</filter-name>
>                <url-pattern>*.arag</url-pattern>
>        </filter-mapping>
>        <filter-mapping>
>                <filter-name>MyFacesExtensionsFilter</filter-name>
>                <url-pattern>/faces/*</url-pattern>
>        </filter-mapping>
>
>        <!-- Use client-side state saving.  In Trinidad, it is an
>                optimized, token-based mechanism that is almost always a
>                better choice than the standard JSF server-side state
> saving. -->
>        <context-param>
>                <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
>                <param-value>client</param-value>
>                <!--param-value>server</param-value-->
>        </context-param>
>
>        <!-- Trinidad by default uses an optimized client-side state saving
>                mechanism. To disable that, uncomment the following -->
>        <!--context-param>
>
>  <param-name>org.apache.myfaces.trinidad.CLIENT_STATE_METHOD</param-name>
>                <param-value>all</param-value>
>                </context-param-->
>
>        <!-- Trinidad also supports an optimized strategy for caching some
>                view state at an application level, which significantly
> improves
>                scalability.  However, it makes it harder to develop
> (updates to
>                pages will not be noticed until the server is restarted),
> and in
>                some rare cases cannot be used for some pages (see Trinidad
>                documentation for more information) -->
>        <context-param>
>                <param-name>
>
>  org.apache.myfaces.trinidad.USE_APPLICATION_VIEW_CACHE
>                </param-name>
>                <param-value>false</param-value>
>        </context-param>
>
>        <!-- Apache Trinidad by default obfuscates the Javascript it
> delivers to
>                the client, as well as stripping comments and whitespace.
> This dramatically
>                reduces the size of our Javascript download, but also makes
> it tricky to
>                debug the Javascript. This flag can be set to true to turn
> off the
>                obfuscation.  -->
>        <context-param>
>                <param-name>
>                        org.apache.myfaces.trinidad.DEBUG_JAVASCRIPT
>                </param-name>
>                <param-value>true</param-value>
>        </context-param>
>
>        <!-- If this parameter is enabled, Trinidad will automatically
>                check the modification date of your JSPs, and discard saved
>                state when they change;  this makes development easier,
>                but adds overhead that should be avoided when your
> application
>                is deployed -->
>        <context-param>
>                <param-name>
>                        org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION
>                </param-name>
>                <param-value>true</param-value>
>        </context-param>
>
>        <!-- Enables Change Persistence at a session scope.  By default,
>                Change Persistence is entirely disabled. The ChangeManager
> is
>                an API, which can persist component modifications (like,
>                is a showDetail or tree expanded or collapsed). For
> providing
>                a custom Change Persistence implementation inherit from the
>                Trinidad API's ChangeManager class. As the value you have
>                to use the fullqualified class name. -->
>        <context-param>
>                <param-name>
>                        org.apache.myfaces.trinidad.CHANGE_PERSISTENCE
>                </param-name>
>                <param-value>session</param-value>
>        </context-param>
>
>        <!-- Trinidad has its own ViewHandler, which is a "decorating"
>                view handler - for example, it needs to wrap methods like
> renderView()
>                to perform some extra pre- and post-handling.  Facelets, on
> the other
>                hand, is more of a true ViewHandler - it actually implements
>                renderView() (yeah, it decorates too, but forget about that
>                for a second).  As a result, the world is a better place if
>                the Trinidad ViewHandler runs around the Facelets
> ViewHandler.
>                But since Facelets is registered in
> WEB-INF/faces-config.xml,
>                and Trinidad's is registered from META-INF/faces-config.xml
> in its
>                JAR, exactly the opposite happens as per the JSF spec.
>
>                Hence, the following config parameter, which Trinidad
>                exposes to allow pushing a ViewHandler inside
>                of ours.  FWIW, you retain the entire delegation stack -
>                just flipped around a bit - so that Facelets still decorates
>                the standard ViewHandler, and therefore you've still got
>                JSP support.
>        -->
>        <context-param>
>                <param-name>
>                        org.apache.myfaces.trinidad.ALTERNATE_VIEW_HANDLER
>                </param-name>
>
>  <param-value>com.sun.facelets.FaceletViewHandler</param-value>
>        </context-param>
>
>        <!-- Once you are using Facelets you are perhaps interested in
> putting some comments to your XHTML template
>                Not every component likes this, because the comments are
> interpreted as regular components and not every component likes every other
> component to be its child  -->
>        <context-param>
>                <param-name>facelets.SKIP_COMMENTS</param-name>
>                <param-value>true</param-value>
>        </context-param>
>
>        <filter>
>                <filter-name>trinidad</filter-name>
>                <filter-class>
>                        org.apache.myfaces.trinidad.webapp.TrinidadFilter
>                </filter-class>
>        </filter>
>
>        <filter-mapping>
>                <filter-name>trinidad</filter-name>
>                <servlet-name>faces</servlet-name>
>        </filter-mapping>
>
>        <!-- Faces Servlet -->
>        <servlet>
>                <servlet-name>faces</servlet-name>
>
>  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
>        </servlet>
>
>        <!-- resource loader servlet -->
>        <servlet>
>                <servlet-name>resources</servlet-name>
>                <servlet-class>
>                        org.apache.myfaces.trinidad.webapp.ResourceServlet
>                </servlet-class>
>        </servlet>
>
>        <!-- Faces Servlet Mappings -->
>        <servlet-mapping>
>                <servlet-name>faces</servlet-name>
>                <url-pattern>/faces/*</url-pattern>
>        </servlet-mapping>
>
>        <servlet-mapping>
>                <servlet-name>faces</servlet-name>
>                <url-pattern>*.arag</url-pattern>
>        </servlet-mapping>
>
>        <servlet-mapping>
>                <servlet-name>resources</servlet-name>
>                <url-pattern>/adf/*</url-pattern>
>        </servlet-mapping>
>
>        <!-- Use documents saved as *.xhtml for Facelets -->
>        <context-param>
>                <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
>                <param-value>.jspx</param-value>
>        </context-param>
>
>        <!-- Welcome Files -->
>        <welcome-file-list>
>                <welcome-file>index.html</welcome-file>
>        </welcome-file-list>
>
> </web-app>
>
> Tobias Eisenträger
>

Mime
View raw message