You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Ken McArthur <ke...@fgood.org> on 2006/03/23 02:35:23 UTC

myfaces and Geronimo

I just noticed that Geronimo is not listed under working myFaces Servlet
Containers.

I've successfully run myFaces 1.1.1 using Goneronimo 1.0 Tomcat and Jetty
distributions.

My experience with GBO

Posted by Lance Frohman <lf...@gmail.com>.
For anyone interested in using IBM's GBO (Global Business Objects),
I spent some time trying it out, and I wasn't able to use it for
various reasons. The developer, Steve Li, was extremely helpful,
and offered to make changes for me. Below is my final email to him,
and his responses.

====================================================================
====================================================================


Hi Lance, 

Thanks a lot for your feedback. To the problems you listed, I gave out my
comments just for your reference. 

Thanks again for your patience on GBO. :) 

Best Regards,

Steve Li (???)
----------------------------------------------------------------------------
-----------------------
User Technologies, IBM China Development Lab, Tel: (8621)63262288-5872
E-mail: limaoyu@cn.ibm.com 


"Lance Frohman" <lf...@gmail.com> 
2006-04-01 ?? 07:51 
 To Mao Yu Li/China/IBM@IBMCN  
cc "'Michele Hwu'" <hw...@us.ibm.com>, "'Peter Cyrus'" <pe...@parvia.com>  
Subject RE: GBO 

  

 



There were several problems. 
One was that the GBO libraries were tied to the Sun JSF reference
Implementation, one 
version of Java Server Faces. I am using Apache Myfaces, a different
version. 
You found a workaround, but this is not the best solution. 
Steve-> GBO is designed based on IBM/Sun JSF implementation, so only
workaround is provided. 
  
The second is that GBO shows the errors as a graphic icon indicating that a
required 
field is missing. We need a text error message. 
You offered to correct this. 
Steve->Thanks for your comments, we will improve. 

The third problem is that the date chooser tag has a special tool for
changing the year. 
The tool did not work for me. 
Steve->Is it just unsuitable or is there any problems? It works well all the
time. 
  
The date chooser does not have any checking, so a user can enter February
31. 
Steve->We did check on client, while you saw the problem, maybe some
javascripts code doesn't work. I didn't find this problem. 
  
The biggest problem is that the address object model is not fixed. It just
has fields 
zero through five. And field four could be country or postal code, depending
on 
the Locale. I want to have an address like: 
Steve->Address is different according to locales (address item is different
and address item order is different), and there is no one fixed data
structure can describe it, so GBO used a flexible data structure. You don't
need care about each address item, just believe it is an Address Object and
use it. You can store/recover the address object in DB or other repository. 

street1 
street2 
city state postal-code 
country 
  
but I can't do this, because I must specify 
  
field0 
field1 
field2 field3 field4 
field5 
  
for countries with state (like the U.S. and Canada) 
but 
  
field0 
field1 
field2 field3 
field4 
  
for countries without state (Europe, etc.). This can't be done. 
  
and I think the formatting is wrong, in some countries, the 
City comes before the postal code, and in other countries, it is reversed. 
  
Also, I was having trouble finding documentation. 
I had trouble find out how to customize the templates. 
I had trouble finding out how to use the AddressModel and NameModel, etc. 
I think these need to be fixed - that is the Address needs street1, street2,

city, state, postal code and country fields, not field1, field2, etc. 

Steve-> It's GBO team's fault without providing enough documents. 
  
Also, the licensing. Most of the products that I use are open source, like 
Apache, MySql, Tomcat, eclipse. And Oracle donated their JSF kit to 
open source. You don't release the source code, so I can't customize 
the code by extending the classes. And I wasn't even sure if I could use 
GBO in my application, if I did not get a license. 
  
I think you have a really good idea here, you were extremely 
helpful, and gave fast responses. I think more people would try it out, 
except they don't want to deal with the licensing issue - I saw another 
person mention this. 
  
Thank you for all your help, 
Lance Frohman 
  

----------------------------------------------------------------------------
----
From: Mao Yu Li [mailto:limaoyu@cn.ibm.com] 
Sent: Friday, March 31, 2006 3:21 PM
To: Lance Frohman
Cc: 'Michele Hwu'; 'Peter Cyrus'
Subject: Re: GBO


Hi Lance, 

I'm sorry to know you will give up using GBO finally, but could you tell us
a little more reasons about why you give up using GBO besides the functions
you required in the forum? If it's only the problem of the functions you
mentioned, I think we can add/fix as soon as possible. 

We'll appreciate your feedback and improve the quality of GBO continuously.
Thanks. 

Best Regards,

Steve Li (???)
----------------------------------------------------------------------------
-----------------------
User Technologies, IBM China Development Lab, Tel: (8621)63262288-5872
E-mail: limaoyu@cn.ibm.com 

"Lance Frohman" <lf...@gmail.com> 
2006-04-01 ?? 05:25 
 
To Mao Yu Li/China/IBM@IBMCN  
cc "'Michele Hwu'" <hw...@us.ibm.com>, "'Peter Cyrus'" <pe...@parvia.com>  
Subject GBO 


  

 




We will not be using GBO after all.
Unfortunately, it does not fit our needs.
Thank you very much for all your help.
I appreciate your quick answers. 
 
Lance 


Re: File upload problem - setFile( ) never called, please help!

Posted by Murray Brandon <mu...@hotmagna.com>.
Yes, I tested that too before posting to be sure it wasn't something 
simple. 
I'm sure it's some issue with the combination of everything I'm using - 
could be ordering of extension filters.
Looking at that next.

Matthias Wessendorf wrote:
> Indeed, today I tested the MyFaces example because of your posts
> and it works fine for me, like expected.
>
> -Matthias
>
> On 4/12/06, Mike Kienenberger <mk...@gmail.com> wrote:
>   
>> On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
>>     
>>> I added an <h:messages/> tag and there are none - I haven't plugged in
>>> any validation yet anyway.
>>> I redid a clean example (ie. vanilla myfaces/tomahawk) to be sure I
>>> wasn't wasting your time. ;-)
>>>       
>> Murray,
>> I know this has been mentioned to you in another couple of threads as
>> well, but please check and make sure you've got the extensions filter
>> installed correctly.
>>
>>     
>
>
> --
> Matthias Wessendorf
> Zülpicher Wall 12, 239
> 50674 Köln
> http://www.wessendorf.net
> mwessendorf-at-gmail-dot-com
>
>   


Re: File upload problem - setFile( ) never called, please help!

Posted by Matthias Wessendorf <mw...@gmail.com>.
Indeed, today I tested the MyFaces example because of your posts
and it works fine for me, like expected.

-Matthias

On 4/12/06, Mike Kienenberger <mk...@gmail.com> wrote:
> On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
> > I added an <h:messages/> tag and there are none - I haven't plugged in
> > any validation yet anyway.
> > I redid a clean example (ie. vanilla myfaces/tomahawk) to be sure I
> > wasn't wasting your time. ;-)
>
> Murray,
> I know this has been mentioned to you in another couple of threads as
> well, but please check and make sure you've got the extensions filter
> installed correctly.
>


--
Matthias Wessendorf
Zülpicher Wall 12, 239
50674 Köln
http://www.wessendorf.net
mwessendorf-at-gmail-dot-com

Re: File upload problem - setFile( ) never called, please help!

Posted by Matthias Wessendorf <mw...@gmail.com>.
Murray,

can you check agains the nightly version of ExtensionsFilter?

(see also TOMAHAWK-249)

On 4/13/06, Mike Kienenberger <mk...@gmail.com> wrote:
> On 4/12/06, Murray Brandon <mu...@hotmagna.com> wrote:
> > I've attached my web.xml and faces.config.xml which I think are right.
> > Would be nice to get a second opinion tho.
>
> Ok.  The first problem is that web.xml elements are not in the correct order.
> You're probably getting warnings about this, and this is probably a
> large part of the problem as most of your configuration file is
> probably being ignored.
>
> This is the required ordering:
>
> <!ELEMENT web-app (icon?, display-name?, description?, distributable?,
> context-param*, filter*, filter-mapping*, listener*, servlet*,
> servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
> error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
> login-config?, security-role*, env-entry*, ejb-ref*,  ejb-local-ref*)>
>
> That is, context-params followed by filters followed by
> filter-mappings followed by listeners followed by servlets followed by
> servlet-mappings followed by security-constraints.
>
> Your filter mappings will be executed in the order you list them.   My
> recommendation would be to have the following myfaces extension filter
> listed last, and during post-processing (after the Servlet runs), it
> will run first, so you'll have a valid page at this point.
>
>     <!-- extension mapping for adding <script/>, <link/>, and other
> resource tags to JSF-pages  -->
>     <filter-mapping>
>         <filter-name>MyFacesExtensionsFilter</filter-name>
>         <servlet-name>FacesServlet</servlet-name>
>     </filter-mapping>
>
>
> I would delete the following url-pattern mapping as it doesn't add anything.
>
>     <filter-mapping>
>         <filter-name>MyFacesExtensionsFilter</filter-name>
>         <url-pattern>*.jsf</url-pattern>
>     </filter-mapping>
>
> The order of the following extensions filter mapping probably doesn't
> matter, but you might get slightly better performance by listing it
> first:
>
>     <!-- extension mapping for serving page-independent resources
> (javascript, stylesheets, images, etc.)  -->
>     <filter-mapping>
>         <filter-name>MyFacesExtensionsFilter</filter-name>
>         <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
>     </filter-mapping>
>


--
Matthias Wessendorf
Zülpicher Wall 12, 239
50674 Köln
http://www.wessendorf.net
mwessendorf-at-gmail-dot-com

Re: File upload no longer a problem - setFile( ) called! Updated web.xml attached.

Posted by Mike Kienenberger <mk...@gmail.com>.
On 4/12/06, Murray Brandon <mu...@hotmagna.com> wrote:
> Having uploaded a file, can I then serve that up as an image in the app
> or does <af:objectImage only serve up images from inside the war file
> system?

There's a sandbox graphicImageDynamic component in progress, but when
I last used it it didn't work in all cases (fails when client-side
state saving data gets too large).   There's a facelets tag handler
for graphicImageDynamic on the facelets wiki (probably also the
myfaces wiki) if you want to give it a try.   I'll be interested in
hearing what you end up doing to generate images from byte data.

Re: File upload no longer a problem - setFile( ) called! Updated web.xml attached.

Posted by Murray Brandon <mu...@hotmagna.com>.
Thanks Mike,

Great advice! - I reordered my web.xml and now the ADF file upload and 
the multi-part mime encoded form works fine.
For those interested, I've attached the new web.xml

I'm still having issues with the missing myfaces clear_formname( ) 
javascript and the <af:table not rendering content, but I'll try and 
isolate the latter into a cleaner example.
Having uploaded a file, can I then serve that up as an image in the app 
or does <af:objectImage only serve up images from inside the war file 
system?

Regards, Murray

Re: File upload problem - setFile( ) never called, please help!

Posted by Mike Kienenberger <mk...@gmail.com>.
On 4/12/06, Murray Brandon <mu...@hotmagna.com> wrote:
> I've attached my web.xml and faces.config.xml which I think are right.
> Would be nice to get a second opinion tho.

Ok.  The first problem is that web.xml elements are not in the correct order.
You're probably getting warnings about this, and this is probably a
large part of the problem as most of your configuration file is
probably being ignored.

This is the required ordering:

<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
context-param*, filter*, filter-mapping*, listener*, servlet*,
servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
login-config?, security-role*, env-entry*, ejb-ref*,  ejb-local-ref*)>

That is, context-params followed by filters followed by
filter-mappings followed by listeners followed by servlets followed by
servlet-mappings followed by security-constraints.

Your filter mappings will be executed in the order you list them.   My
recommendation would be to have the following myfaces extension filter
listed last, and during post-processing (after the Servlet runs), it
will run first, so you'll have a valid page at this point.

    <!-- extension mapping for adding <script/>, <link/>, and other
resource tags to JSF-pages  -->
    <filter-mapping>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <servlet-name>FacesServlet</servlet-name>
    </filter-mapping>


I would delete the following url-pattern mapping as it doesn't add anything.

    <filter-mapping>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <url-pattern>*.jsf</url-pattern>
    </filter-mapping>

The order of the following extensions filter mapping probably doesn't
matter, but you might get slightly better performance by listing it
first:

    <!-- extension mapping for serving page-independent resources
(javascript, stylesheets, images, etc.)  -->
    <filter-mapping>
        <filter-name>MyFacesExtensionsFilter</filter-name>
        <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
    </filter-mapping>

Re: File upload problem - setFile( ) never called, please help!

Posted by Murray Brandon <mu...@hotmagna.com>.
Mike Kienenberger wrote:
> On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
>   
>> I added an <h:messages/> tag and there are none - I haven't plugged in
>> any validation yet anyway.
>> I redid a clean example (ie. vanilla myfaces/tomahawk) to be sure I
>> wasn't wasting your time. ;-)
>>     
>
> Murray,
> I know this has been mentioned to you in another couple of threads as
> well, but please check and make sure you've got the extensions filter
> installed correctly.
>
>   
I did double check - is there a way to list the extension filters 
installed at runtime?  Perhaps there's some issue with jar versions.
(I've noticed that if the extension filters don't load, Tomcat doesn't 
start the webapp anyway, and mine starts ok)

I've attached my web.xml and faces.config.xml which I think are right.  
Would be nice to get a second opinion tho.

Regards, Murray

Re: File upload problem - setFile( ) never called, please help!

Posted by Mike Kienenberger <mk...@gmail.com>.
On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
> I added an <h:messages/> tag and there are none - I haven't plugged in
> any validation yet anyway.
> I redid a clean example (ie. vanilla myfaces/tomahawk) to be sure I
> wasn't wasting your time. ;-)

Murray,
I know this has been mentioned to you in another couple of threads as
well, but please check and make sure you've got the extensions filter
installed correctly.

Re: File upload problem - setFile( ) never called, please help!

Posted by Murray Brandon <mu...@hotmagna.com>.
I added an <h:messages/> tag and there are none - I haven't plugged in 
any validation yet anyway.
I redid a clean example (ie. vanilla myfaces/tomahawk) to be sure I 
wasn't wasting your time. ;-)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:c="http://java.sun.com/jstl/core"
      xmlns:t="http://myfaces.apache.org/tomahawk"     
      xmlns:afh="http://xmlns.oracle.com/adf/faces/html"
      xmlns:af="http://xmlns.oracle.com/adf/faces"
    >

    <ui:composition id="fu">
        <h:form id="fu3" name="form1" enctype="multipart/form-data" >
            <h:outputText id="fu4" value="Please give me an image"/>
            <t:inputFileUpload id="fileupload"
                               accept="image/*"
                               value="#{myModel.file}"
                               storage="file"
                               required="true"/>
            <h:commandButton id="fu5" value="Upload Now!" 
action="#{myModel.doUpload}" />
        </h:form>
        <h:messages/>

    </ui:composition>
</html>

 From my console (my own phase listener debug):

===============< phase RESTORE_VIEW(1)>===========
===============< phase APPLY_REQUEST_VALUES(2)>===========
===============< phase PROCESS_VALIDATIONS(3)>===========
===============< phase UPDATE_MODEL_VALUES(4)>===========
===============< phase INVOKE_APPLICATION(5)>===========
MyModel 1
MyModel 3 null

My full model class is as below:

/*
 * Created on Feb 13, 2006
 */
package com.playpen.ncs.aui.model;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;

import org.apache.myfaces.custom.fileupload.UploadedFile;

/**
 * @author Murray
 */
public class MyModel
{
    private UploadedFile _file;   
   
    public void processAction(ActionEvent e) throws AbortProcessingException
    {
        System.out.println("MyModel: triggered with processAction 
event=" + e.getComponent().getId());
    }
 
    /**
     * To support file upload
     * @param event
     */
    public void fileUploaded(ValueChangeEvent event)
    {
        System.out.println("MyModel 0");
        UploadedFile file = (UploadedFile)event.getNewValue();
        if (file != null)
        {
            System.out.println("MyModel fileUploaded called with a file");
            FacesContext context = FacesContext.getCurrentInstance();
            FacesMessage message = new FacesMessage("Successfully 
uploaded file " + file.getName() + " (" + file.getSize() + " bytes)");
            
context.addMessage(event.getComponent().getClientId(context), message);
            // Here's where we could call file.getInputStream()
        }
        else
        {
            System.out.println("MyModel fileUploaded called with no file");
        }
    }
   
    public UploadedFile getFile()
    {
        System.out.println("MyModel 1");
        return _file;
    }

    public void setFile(UploadedFile file)
    {
        System.out.println("MyModel 2");
        _file = file;
    }

    public String doUpload()
    {
        UploadedFile file = getFile();
        System.out.println("MyModel 3 " + file);
        // ... and process it in some way
        return (file != null ? file.getName() : null);
    }
}


Re: enctype="multipart/form-data" not persisting text fields back into my model.

Posted by Sébastien Marin <th...@free.fr>.
http://issues.apache.org/jira/browse/TOMAHAWK-63
http://issues.apache.org/jira/browse/TOMAHAWK-168

Selon Mike Kienenberger <mk...@gmail.com>:

-> On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
-> > However, if I change ONLY the form encoding type to be
-> > "multipart/form-data", the bean.property never gets set.
-> > What gives?  Do I have to do something special for multipart form submits?
->
-> I don't know the answer to this, but do you have the Tomahawk
-> Extensions filter installed?  I know that it does some kind of
-> processing on "multipart/form-data" encoding types to support file
-> uploads.
->


|Cordialement, Sébastien MARIN.|
|------------------------------|
|->  http://www.marin-s.com  <-|
|------------------------------|

Re: enctype="multipart/form-data" not persisting text fields back into my model.

Posted by Mike Kienenberger <mk...@gmail.com>.
On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
> However, if I change ONLY the form encoding type to be
> "multipart/form-data", the bean.property never gets set.
> What gives?  Do I have to do something special for multipart form submits?

I don't know the answer to this, but do you have the Tomahawk
Extensions filter installed?  I know that it does some kind of
processing on "multipart/form-data" encoding types to support file
uploads.

enctype="multipart/form-data" not persisting text fields back into my model.

Posted by Murray Brandon <mu...@hotmagna.com>.
I have a simple <h:form> with a single <h:inputText component inside it 
with value="{#bean.property}" and a
<h:commandButton actionListener="#{bean.processAction}"... to submit the 
form.
 
It works great, setting the value of {#bean.property}to whatever text I 
enter on submit of the form.

However, if I change ONLY the form encoding type to be 
"multipart/form-data", the bean.property never gets set.
What gives?  Do I have to do something special for multipart form submits?

Regards, Confused


Re: File upload problem - setFile( ) never called, please help!

Posted by Mike Kienenberger <mk...@gmail.com>.
On 4/11/06, Murray Brandon <mu...@hotmagna.com> wrote:
> In fact, when I have a multipart form, none of the setters get called on
> my beans, even for <h:inputText> fields
> (with or without an upload control on the form).  If I remove the
> multipart flag, my setters get called, but of course you need a
> multipart form for uploading binary files.

My guess is validation or conversion is failing, and you're never
reaching the updateModel phase.  Throw an h:messages tag on your page.

Re: File upload problem - setFile( ) never called, please help!

Posted by Murray Brandon <mu...@hotmagna.com>.
In fact, when I have a multipart form, none of the setters get called on 
my beans, even for <h:inputText> fields
(with or without an upload control on the form).  If I remove the 
multipart flag, my setters get called, but of course you need a 
multipart form for uploading binary files.

Could it be a MyFaces 1.1.3 bug?  Or could it be the result of using 
both ADF and MyFaces together?
My jars are below.

    10,823 adf-facelets.jar
   683,633 adf-faces-api-ea20-SNAPSHOT.jar
 3,122,625 adf-faces-impl-ea20-SNAPSHOT.jar
    48,742 common-annotations.jar
   188,671 commons-beanutils-1.7.0.jar
    46,725 commons-codec-1.3.jar
   559,366 commons-collections-3.1.jar
   168,446 commons-digester-1.6.jar
   112,341 commons-el-1.0.jar
    31,825 commons-fileupload-1.1.jar
    65,621 commons-io-1.2.jar
   207,723 commons-lang-2.1.jar
    38,015 commons-logging-1.0.4.jar
    26,089 el-api.jar
    96,983 el-ri.jar
   252,102 jsf-facelets1014.jar
    50,491 jsp-api.jar
    16,923 jstl-1.1.0.jar
   123,206 mob-layer-interfaces.jar
   252,169 myfaces-api-1.1.3-SNAPSHOT.jar
   517,156 myfaces-impl-1.1.3-SNAPSHOT.jar
    15,420 portlet.jar
   188,993 serializer.jar
 1,237,598 tomahawk-1.1.2-SNAPSHOT.jar
 3,078,601 xalan.jar
 1,203,860 xercesImpl.jar
   194,205 xml-apis.jar

Murray Brandon wrote:
> Hi all,
>
> I'm having a problem trying to get file upload to work.
>
>         <h:form id="form1" name="form1" enctype="multipart/form-data" >
>             <h:outputText value="Please give me an image"/>
>             *<t:inputFileUpload id="fileupload"
>                                accept="image/*"
>                                value="#{ui.someUser.file}"
>                                storage="file"
>                                required="true"/>*
>             <h:commandButton value="Upload Now!" 
> action="#{ui.someUser.doUpload}" />
>         </h:form>
>
> My bean effectively has this in it:
>
> import org.apache.myfaces.custom.fileupload.UploadedFile;
> :
> :
> public class MyBean
> {
>     public void fileUploaded(ValueChangeEvent event)
>     {
>         UploadedFile file = (UploadedFile)event.getNewValue();
>         if (file != null)
>         {
>             FacesContext context = FacesContext.getCurrentInstance();
>             FacesMessage message = new FacesMessage("Successfully 
> uploaded file " + file.getName() + " (" + file.getSize() + " bytes)");
>             
> context.addMessage(event.getComponent().getClientId(context), message);
>             // Here's where we could call file.getInputStream()
>         }
>         else
>         {
>             System.out.println("fileUploaded called with no file");
>         }
>     }
>    
>     public UploadedFile getFile()
>     {
>         return _file;
>     }
>
> *    public void setFile(UploadedFile file)
>     {
>         // never called!
>         _file = file;
>     }
> *
>     public String doUpload()
>     {
>         UploadedFile file = getFile();
>         // ... and process it in some way
>         return (file != null ? file.getName() : "nullo");
>     }
>
>     private UploadedFile _file;   
> }
>
> Please help!
>
> Regards, Murray
>
> ================================================
> extra notes:
>
> 1) I am using Facelets + Myfaces + Tomahawk + ADF faces.
>
> 2) For a start I get a javascript error on submit because 
> clear_form1(); does not exist not sure why it is missing.
> The following html was generated:
>  <input id="form1:_id6" name="form1:_id6" type="submit" value="Upload 
> Now!" onclick="*clear_form1();*">
>
> 3) My web.xml
>     <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>
>             <description>Set the size limit for uploaded files.
>                 Format: 10 - 10 bytes
>                         10k - 10 KB
>                         10m - 10 MB
>                         1g - 1 GB
>             </description>
>         </init-param>
>     </filter>
>    
>     <!-- extension mapping for adding <script/>, <link/>, and other 
> resource tags to JSF-pages  -->
>     <filter-mapping>
>         <filter-name>MyFacesExtensionsFilter</filter-name>
>         <servlet-name>FacesServlet</servlet-name>
>     </filter-mapping>
>    
>     <!-- extension mapping for serving page-independent resources 
> (javascript, stylesheets, images, etc.)  -->
>     <filter-mapping>
>         <filter-name>MyFacesExtensionsFilter</filter-name>
>         <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
>     </filter-mapping>
>
> 4) ADF faces file upload exhibits the same behaviour.
>
> 5) The file is definitely attempting to be uploaded because if I give 
> a really big file I get a SizeLimitExceededException.
>
> Apr 11, 2006 4:58:58 AM 
> org.apache.myfaces.webapp.filter.MultipartRequestWrapper parseRequest
> INFO: user tried to upload a file that exceeded file-size limitations.
> org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: 
> the request was rejected because its size (337407087) exceeds the 
> configured maximum (104857600)
>         at 
> org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:310)
>         at 
> org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
>         at 
> org.apache.myfaces.webapp.filter.MultipartRequestWrapper.parseRequest(MultipartRequestWrapper.java:81)
>         at 
> org.apache.myfaces.webapp.filter.MultipartRequestWrapper.getParameterMap(MultipartRequestWrapper.java:177)
>         at 
> oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:184)
>         at 
> oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:80)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at 
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:130)
>         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.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
>         at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
>         at 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>         at 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)