users@javaserverfaces.java.net

RequestScoped deployment works only sometimes

From: <yuvalzi_at_gmail.com>
Date: Thu, 10 Oct 2013 08:13:05 +0000 (UTC)

I am using Jetbrains Intellij idea 12.
When deploying jsf2.2 to tomcat 7 server, the RequestScoped login bean
does not always work.
If i declare its scope not as an annotation but instead in the web.xml
it works fine.
Changing it to @ViewScoped fix it, but i do not like this fix because
@RequestScoped need to work fine anyway

Here is my code:



login.xhtml:
------------------
<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:t="http://myfaces.apache.org/tomahawk"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:rich="http://richfaces.org/rich">
<!--
<f:view encoding="UTF-8" contentType="text/html">
-->
<h:head>
    <ui:include src="inc_head.xhtml" />
    <script type="text/javascript" src="js/button.js"></script>
    <link rel="stylesheet" href="css/tinybox.css" type="text/css" />
    <script type="text/javascript" src="js/tinybox.js"></script>
</h:head>
<h:body>

<script type="text/javascript">
    initClient.push(
            function() {
                initTableButtons();
            }
    );

    function autoLogin(event)
    {
        if (event.keyCode == 13)
        {
            document.getElementById('btnLogin').onclick();
        }
    }

</script>
<h:form id="formLogin">
<h:inputHidden id="mode" value="#{login.mode}" forceId="true" />
<h:inputHidden id="confirmationCode" value="#{login.confirmationCode}"
forceId="true" />
<h:inputHidden id="nextUrl" value="#{login.next}" forceId="true" />
<rich:focus for="username" rendered="#{login.mode == 'login'}" />
<rich:focus for="usernameForgot" rendered="#{login.mode ==
'forgot_password'}" />
<rich:focus for="resetPassword" rendered="#{login.mode ==
'reset_password'}" />
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="top">

<table width="90%" border="0" cellpadding="0" cellspacing="0">
<!--logos-->
<tr class="headheightlogin">
    <td align="center" valign="top">
        <table cellpadding="0" cellspacing="0">
            <tr>
                <td><img src="images/pix.gif" width="1" height="32"
alt=""/></td>
            </tr>
            <tr>
                <td align="center" valign="top">
                    <a href="http://www.todacell.com"
style="text-decoration:none;">
                        <img src="images/general/logo_todacell.gif"
style="vertical-align:middle;" alt=""/>
                    </a>
                </td>
                <td>
                    <div style="height:10px;">
                        <a href="http://www.todacell.com"
style="text-decoration:none;">
                            <span id="slogan">Smartphone Ad
Network</span>
                        </a>
                    </div>
                </td>
            </tr>
        </table>
    </td>
</tr>
<!--end logos-->
<!--top_tabs-->
<tr>
    <td align="left" valign="top">
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td width="430">
                    <table width="430" border="0" cellspacing="0"
cellpadding="0">
                        <tr>
                            <td height="65" class="titleEmpty">
                                <div
style="margin-top:12px;"><h:outputText
value="#{bundle['login.login']}"/></div>
                            </td>
                        </tr>
                    </table>
                </td>
                <td width="100%" align="right" valign="bottom"
class="bg_top_tabs">
                    <table border="0" cellpadding="0" cellspacing="0">
                        <tr>
                            <!-- <h:panelGroup
rendered="#{login.language != 'ja_JP'}">
                                <td class="bg_tab_grey_left">
                                    <h:outputLink
value="login_lang.jsp" styleClass="taboff">
                                        <f:param name="lang"
value="ja_JP"/>
                                        <h:outputText value="日本語"/>
                                    </h:outputLink>
                                </td>
                                <td class="bg_tab_grey_right"
width="5">
                                    <img src="images/pix.gif" width="5"
height="1"/>
                                </td>
                            </h:panelGroup>
                            <h:panelGroup rendered="#{login.language ==
'ja_JP'}">
                                <td class="bg_tab_or_left tabon">
                                    日本語
                                </td>
                                <td class="bg_tab_or_right" width="5">
                                    <img src="images/pix.gif" width="5"
height="1"/>
                                </td>
                            </h:panelGroup> -->
                            <h:panelGroup rendered="#{login.language !=
'en_US'}">
                                <td class="bg_tab_grey_left">
                                    <h:outputLink
value="login_lang.jsp" styleClass="taboff">
                                        <f:param name="lang"
value="en_US"/>
                                        <h:outputText value="English"/>
                                    </h:outputLink>
                                </td>
                                <td class="bg_tab_grey_right"
width="5">
                                    <img src="images/pix.gif" width="5"
height="1" alt=""/>
                                </td>
                            </h:panelGroup>
                            <h:panelGroup rendered="#{login.language ==
'en_US'}">
                                <td class="bg_tab_or_left tabon">
                                    English
                                </td>
                                <td class="bg_tab_or_right" width="5">
                                    <img src="images/pix.gif" width="5"
height="1" alt=""/>
                                </td>
                            </h:panelGroup>
                        </tr>
                        <tr>
                            <td colspan="4"><img src="images/pix.gif"
width="1" height="9" alt=""/></td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </td>
</tr>
<!--end top_tabs-->
<tr>
    <td class="bg_gr3">
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
            <tr>
                <td><img src="images/pix.gif" width="1" height="25"
alt=""/></td>
            </tr>
            <tr>
                <td colspan="5" align="left" valign="top">
                    <table width="100%" border="0" cellpadding="0"
cellspacing="0">
                        <tr>
                            <td><img src="images/pix.gif" width="23"
height="1" alt=""/></td>
                            <td width="100%">
                                <table width="100%" cellpadding="0"
cellspacing="0">
                                    <tr>
                                        <td width="18"><img
src="images/general/corner_top_left.gif" width="18"
                                                            height="15"
alt=""/></td>
                                        <td width="100%"
class="bg_white"><img src="images/pix.gif" alt=""/></td>
                                        <td width="18"><img
src="images/general/corner_top_right.gif" width="18"
                                                            height="15"
alt=""/></td>
                                    </tr>
                                </table>
                            </td>
                            <td><img src="images/pix.gif" width="23"
height="1" alt=""/></td>
                            <td width="325" align="left" valign="top">
                                <table width="325" cellpadding="0"
cellspacing="0">
                                    <tr>
                                        <td width="18"><img
src="images/general/corner_top_left.gif" width="18"
                                                            height="15"
alt=""/></td>
                                        <td width="100%"
class="bg_white"><img src="images/pix.gif" alt=""/></td>
                                        <td width="18"><img
src="images/general/corner_top_right.gif" width="18"
                                                            height="15"
alt=""/></td>
                                    </tr>
                                </table>
                            </td>
                            <td><img src="images/pix.gif" width="23"
height="1" alt=""/></td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td>
                    <img src="images/pix.gif" width="23" alt=""/>
                </td>
                <td width="100%" align="center" valign="middle"
class="bg_white">
                    <img src="images/general/login.gif"
style="padding-top:20px; padding-bottom:70px;" alt=""/>
                    <br/><h:outputText
value="#{bundle['login.recommend']}" style="color:#666666"/>
                </td>
                <td><img src="images/pix.gif" width="23" alt=""/></td>
                <!--end left part-->

                <!--right part-->
                <td width="325" align="left" valign="top">
                    <table width="325" border="0" cellpadding="0"
cellspacing="0" bordercolor="#3399FF">
                        <tr>
                            <td class="bg_white" colspan="3"><img
src="images/pix.gif" width="1" height="10" alt=""/></td>
                        </tr>
                        <tr>
                            <td colspan="3" align="center"
class="bg_white">

                                <!-- activated Publisher -->
                                <h:panelGroup
id="activatedPublisherPanelGroup"
rendered="#{login.activationCodeValid}" >
                                <table width="250" border="0"
cellpadding="0" cellspacing="0">
                                    <tr>
                                        <td class="info_message bold"
align="left">
                                            <h:outputText
value="#{bundle['login.account.activated']}"/>
                                        </td>
                                    </tr>

                                    <tr>
                                        <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="25"
alt=""/></td>
                                    </tr>
                                </table>
                                </h:panelGroup>
                                <!-- activated Publisher-->

                              <!--login-->
                              <h:panelGroup rendered="#{login.mode ==
'login'}"><!---->
                              <table width="250" border="0"
cellpadding="0" cellspacing="0">
                                  <tr>
                                      <td class="text_log"
align="left">
                                          <h:outputText
value="#{bundle['login.signin']}:"/>
                                      </td>
                                      <td align="right">
                                         <img
style="cursor:hand;cursor:pointer"
onclick="TINY.box.show({url:'help_info.jspx?helpId=1',width:300,height:
150})" src="images/buttons/b_helplog.gif" border="0" alt=""/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="20" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td class="text_log bold"
colspan="2">
                                          <div>
                                              <h:message for="btnLogin"
styleClass="error_message"/>
                                              <h:outputText
value="#{bundle['login.password.changed']}"
rendered="#{param['passwordChanged'] == true}"
styleClass="info_message" />
                                          </div>
                                          <h:outputText
value="#{bundle['login.username']}:"/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="text_log bold"
colspan="2">
                                          <h:inputText id="username"
styleClass="mform" value="#{login.username}"
                                                       required="true"
                                                      
style="width:210px;" onkeypress="autoLogin(event);"/>
                                          <div>
                                              <h:message for="username"
styleClass="error_message"/>
                                          </div>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="20" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td class="text_log bold"
colspan="2">
                                          <h:outputText
value="#{bundle['login.password']}:"/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="text_log bold"
colspan="2">
                                              <h:inputSecret
id="password" value="#{login.password}" required="true"
                                                            
styleClass="mform"
                                                            
style="width:210px;" onkeypress="autoLogin(event);"/>
                                          <div>
                                              <h:message for="password"
styleClass="error_message"/>
                                          </div>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="20" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td class="text_log" colspan="2">
                                          <h:selectBooleanCheckbox
id="rememberUser" value="#{login.remember}"/>&#160;<h:outputText
                                             
value="#{bundle['login.remember']}"/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="25" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <table class="tableButton"
width="95" border="0" cellpadding="0"
                                                 cellspacing="0">
                                              <tr class="cursor">
                                                  <td
class="bg_bt_or_left">
                                                      <h:commandLink
id="btnLogin" value="#{bundle['login.login']}"
                                                                    
action="#{login.loginAction}"
                                                                    
forceId="true" styleClass="link_but">
                                                          <f:param
name="next" value="true"/>
                                                      </h:commandLink>
                                                  </td>
                                                  <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                    width="5" height="1" alt=""/>
                                                  </td>
                                              </tr>
                                          </table>
                                      </td>
                                  </tr>
                                  <tr>
                                    <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="35"
alt=""/></td>
                                  </tr>
                                  <tr>
                                    <td colspan="2" align="center">
                                      <h:outputLink styleClass="linkor"
value="login.jspx">
                                        <f:param name="mode"
value="forgot_password" />
                                        <h:outputText
value="#{bundle['login.forgot.password']}" />
                                      </h:outputLink>
                                    </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="35" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center"
class="t_11dgr">
                                          <h:outputText
value="#{bundle['login.no.account']}"/><br/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <table cellpadding="0"
cellspacing="0">
                                              <tr>
                                                  <td>
                                                      <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                            
cellspacing="0">
                                                          <tr
class="cursor">
                                                              <td
class="bg_bt_or_left">
                                                                 
<h:outputLink value="pub_registration.jspx" styleClass="link_but">
                                                                     
<h:outputText value="#{bundle['login.publishers']}"/>
                                                                 
</h:outputLink>
                                                              </td>
                                                              <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                width="5" height="1" alt=""/>
                                                              </td>
                                                          </tr>
                                                      </table>
                                                  </td>
                                                  <td>
                                                      <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                            
cellspacing="0">
                                                          <tr
class="cursor">
                                                              <td
class="bg_bt_or_left">
                                                                 
<h:outputLink value="http://www.todacell.com/contact-us"
styleClass="link_but">
                                                                     
<h:outputText value="#{bundle['login.advertisers']}"/>
                                                                 
</h:outputLink>
                                                              </td>
                                                              <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                width="5" height="1" alt=""/>
                                                              </td>
                                                          </tr>
                                                      </table>
                                                  </td>
                                              </tr>
                                          </table>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td>
                                          &#160;
                                      </td>
                                  </tr>
                              </table>
                              </h:panelGroup>
                              <!--endlogin-->
                              <!-- forgot password -->
                              <h:panelGroup rendered="#{login.mode ==
'forgot_password'}">
                              <table width="250" border="0"
cellpadding="0" cellspacing="0">
                                  <tr>
                                      <td class="text_log"
align="left"><h:outputText
                                             
value="#{bundle['login.forgot.password.mail']}:"/></td>
                                      <td align="right"><a
href="#"><img src="images/buttons/b_helplog.gif" width="41"
                                                                       
 height="29"
                                                                       
 border="0" alt=""/></a></td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="20" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td class="text_log bold"
colspan="2">
                                          <h:outputText
value="#{bundle['login.username']}:"/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="text_log bold"
colspan="2">
                                          <h:inputText
id="usernameForgot" styleClass="mform" value="#{login.usernameForgot}"
                                                       required="true"
                                                      
style="width:210px;" onkeypress="autoLogin(event);"/>
                                          <div>
                                              <h:message
for="usernameForgot" styleClass="error_message"/>
                                          </div>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="20" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <table class="tableButton"
width="120" border="0" cellpadding="0"
                                                 cellspacing="0">
                                              <tr class="cursor">
                                                  <td
class="bg_bt_or_left">
                                                      <h:commandLink
id="btnSendMail" value="#{bundle['login.send.mail']}"
                                                                    
action="#{login.sendMailAction}" forceId="true" styleClass="link_but"/>
                                                  </td>
                                                  <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                    width="5" height="1" alt=""/>
                                                  </td>
                                              </tr>
                                          </table>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="133"
alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <a href="login.jspx"
class="linkor">
                                              <h:outputText
value="#{bundle['login.back']}"/>
                                          </a>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="35" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center"
class="t_11dgr">
                                          <h:outputText
value="#{bundle['login.no.account']}"/><br/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <table cellpadding="0"
cellspacing="0">
                                              <tr>
                                                  <td>
                                                      <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                            
cellspacing="0">
                                                          <tr
class="cursor">
                                                              <td
class="bg_bt_or_left">
                                                                 
<h:outputLink value="pub_registration.jspx" styleClass="link_but">
                                                                     
<h:outputText value="#{bundle['login.publishers']}"/>
                                                                 
</h:outputLink>
                                                              </td>
                                                              <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                width="5" height="1" alt=""/>
                                                              </td>
                                                          </tr>
                                                      </table>
                                                  </td>
                                                  <td>
                                                      <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                            
cellspacing="0">
                                                          <tr
class="cursor">
                                                              <td
class="bg_bt_or_left">
                                                                 
<h:outputLink value="http://www.todacell.com/contact-us"
styleClass="link_but">
                                                                     
<h:outputText value="#{bundle['login.advertisers']}"/>
                                                                 
</h:outputLink>
                                                              </td>
                                                              <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                width="5" height="1" alt=""/>
                                                              </td>
                                                          </tr>
                                                      </table>
                                                  </td>
                                              </tr>
                                          </table>
                                      </td>
                                  </tr>


                                  <tr>
                                      <td>
                                          &#160;
                                      </td>
                                  </tr>
                              </table>
                              </h:panelGroup>
                              <!-- /forgot password -->
                              <!-- forgot password sent -->
                              <h:panelGroup rendered="#{login.mode ==
'forgot_password_sent'}">
                              <table width="250" border="0"
cellpadding="0" cellspacing="0">
                                  <tr>
                                      <td class="text_log"
align="left"><h:outputText
                                             
value="#{bundle['login.forgot.password.mail.sent']}"/></td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="20" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="214" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <a href="login.jspx"
class="linkor">
                                              <h:outputText
value="#{bundle['login.back']}"/>
                                          </a>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
    height="35" alt=""/></td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center"
class="t_11dgr">
                                          <h:outputText
value="#{bundle['login.no.account']}"/><br/>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td colspan="2" align="center">
                                          <table cellpadding="0"
cellspacing="0">
                                              <tr>
                                                  <td>
                                                      <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                            
cellspacing="0">
                                                          <tr
class="cursor">
                                                              <td
class="bg_bt_or_left">
                                                                 
<h:outputLink value="pub_registration.jspx" styleClass="link_but">
                                                                     
<h:outputText value="#{bundle['login.publishers']}"/>
                                                                 
</h:outputLink>
                                                              </td>
                                                              <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                width="5" height="1" alt=""/>
                                                              </td>
                                                          </tr>
                                                      </table>
                                                  </td>
                                                  <td>
                                                      <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                            
cellspacing="0">
                                                          <tr
class="cursor">
                                                              <td
class="bg_bt_or_left">
                                                                 
<h:outputLink value="http://www.todacell.com/contact-us"
styleClass="link_but">
                                                                     
<h:outputText value="#{bundle['login.advertisers']}"/>
                                                                 
</h:outputLink>
                                                              </td>
                                                              <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                width="5" height="1" alt=""/>
                                                              </td>
                                                          </tr>
                                                      </table>
                                                  </td>
                                              </tr>
                                          </table>
                                      </td>
                                  </tr>
                                  <tr>
                                      <td>
                                          &#160;
                                      </td>
                                  </tr>
                              </table>
                              </h:panelGroup>
                              <!-- /forgot password sent -->
                              <!-- forgot password -->
                              <h:panelGroup rendered="#{login.mode ==
'reset_password'}">
                                <h:panelGroup rendered="#{not
login.confirmationCodeValid}">
                                    <table width="250" border="0"
cellpadding="0" cellspacing="0">
                                      <tr>
                                          <td class="text_log"
align="left"><h:outputText styleClass="error_message"
                                                 
value="#{bundle['login.confimration.error']}"/></td>
                                      </tr>
                                      <tr>
                                          <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="200"
alt=""/></td>
                                      </tr>
                                      <tr>
                                          <td colspan="2"
align="center">
                                              <a href="login.jspx"
class="linkor">
                                                  <h:outputText
value="#{bundle['login.back']}"/>
                                              </a>
                                          </td>
                                      </tr>
                                      <tr>
                                          <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
        height="35" alt=""/></td>
                                      </tr>
                                      <tr>
                                          <td colspan="2"
align="center" class="t_11dgr">
                                              <h:outputText
value="#{bundle['login.no.account']}"/><br/>
                                          </td>
                                      </tr>
                                        <tr>
                                            <td colspan="2"
align="center">
                                                <table cellpadding="0"
cellspacing="0">
                                                    <tr>
                                                        <td>
                                                            <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                                  
cellspacing="0">
                                                                <tr
class="cursor">
                                                                    <td
class="bg_bt_or_left">
                                                                       
<h:outputLink value="pub_registration.jspx" styleClass="link_but">
                                                                       
    <h:outputText value="#{bundle['login.publishers']}"/>
                                                                       
</h:outputLink>
                                                                   
</td>
                                                                    <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                      width="5" height="1" alt=""/>
                                                                   
</td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                        <td>
                                                            <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                                  
cellspacing="0">
                                                                <tr
class="cursor">
                                                                    <td
class="bg_bt_or_left">
                                                                       
<h:outputLink value="http://www.todacell.com/contact-us"
styleClass="link_but">
                                                                       
    <h:outputText value="#{bundle['login.advertisers']}"/>
                                                                       
</h:outputLink>
                                                                   
</td>
                                                                    <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                      width="5" height="1" alt=""/>
                                                                   
</td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                    </tr>
                                                </table>
                                            </td>
                                        </tr>
                                      <tr>
                                          <td>
                                              &#160;
                                          </td>
                                      </tr>
                                    </table>
                                </h:panelGroup>

                                <h:panelGroup
rendered="#{login.confirmationCodeValid}">
                                    <table width="250" border="0"
cellpadding="0" cellspacing="0">
                                      <tr>
                                          <td class="text_log"
align="left"><h:outputText
                                                 
value="#{bundle['login.reset.password']}:"/></td>
                                          <td align="right"><a
href="#"><img src="images/buttons/b_helplog.gif" width="41" height="29"
border="0" alt=""/></a></td>
                                      </tr>
                                      <tr>
                                          <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="20"
alt=""/></td>
                                      </tr>
                                    <tr>
                                        <td class="text_log bold"
colspan="2">
                                          <h:outputText
value="#{bundle['login.password']}:"/>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td class="text_log bold"
colspan="2">
                                            <h:inputSecret
id="resetPassword" styleClass="mform" value="#{login.resetPassword}"
                                                        
required="true" style="width:210px;" maxlength="20">
                                              <f:validateLength
minimum="6" maximum="20" />
                                            </h:inputSecret>
                                            <div>

                                                <h:message
for="resetPassword" styleClass="error_message"/>
                                            </div>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
      height="20" alt=""/></td>
                                    </tr>
                                      <tr>
                                          <td class="text_log bold"
colspan="2">
                                              <h:outputText
value="#{bundle['login.password.confirm']}:"/>
                                          </td>
                                      </tr>
                                      <tr>
                                          <td class="text_log bold"
colspan="2">
                                              <h:inputSecret
id="resetPasswordConfirm" styleClass="mform"
value="#{login.resetPasswordConfirm}"
                                                          
required="true" style="width:210px;" maxlength="20">
                                                <f:validateLength
minimum="6" maximum="20" />
                                              </h:inputSecret>
                                              <div>
                                                  <h:message
for="resetPasswordConfirm" styleClass="error_message"/>
                                              </div>
                                          </td>
                                      </tr>
                                      <tr>
                                          <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="20"
alt=""/></td>
                                      </tr>
                                      <tr>
                                          <td colspan="2"
align="center">
                                              <table
class="tableButton" width="165" border="0" cellpadding="0"
                                                     cellspacing="0">
                                                  <tr class="cursor">
                                                      <td
class="bg_bt_or_left">
                                                         
<h:commandLink id="btnChangePassword"
value="#{bundle['login.change.password']}"
                                                                       
 action="#{login.changePasswordAction}" forceId="true"
styleClass="link_but"/>
                                                      </td>
                                                      <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                        width="5" height="1" alt=""/>
                                                      </td>
                                                  </tr>
                                              </table>
                                          </td>
                                      </tr>
                                      <tr>
                                          <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1" height="79"
alt=""/></td>
                                      </tr>
                                      <tr>
                                          <td colspan="2"
align="center">
                                              <a href="login.jspx"
class="linkor">
                                                  <h:outputText
value="#{bundle['login.back']}"/>
                                              </a>
                                          </td>
                                      </tr>
                                      <tr>
                                          <td class="bg_white"
colspan="2"><img src="images/pix.gif" width="1"
                                                                       
        height="35" alt=""/></td>
                                      </tr>
                                      <tr>
                                          <td colspan="2"
align="center" class="t_11dgr">
                                              <h:outputText
value="#{bundle['login.no.account']}"/><br/>
                                          </td>
                                      </tr>
                                        <tr>
                                            <td colspan="2"
align="center">
                                                <table cellpadding="0"
cellspacing="0">
                                                    <tr>
                                                        <td>
                                                            <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                                  
cellspacing="0">
                                                                <tr
class="cursor">
                                                                    <td
class="bg_bt_or_left">
                                                                       
<h:outputLink value="pub_registration.jspx" styleClass="link_but">
                                                                       
    <h:outputText value="#{bundle['login.publishers']}"/>
                                                                       
</h:outputLink>
                                                                   
</td>
                                                                    <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                      width="5" height="1" alt=""/>
                                                                   
</td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                        <td>
                                                            <table
class="tableButton" width="125" border="0" cellpadding="0"
                                                                  
cellspacing="0">
                                                                <tr
class="cursor">
                                                                    <td
class="bg_bt_or_left">
                                                                       
<h:outputLink value="http://www.todacell.com/contact-us"
styleClass="link_but">
                                                                       
    <h:outputText value="#{bundle['login.advertisers']}"/>
                                                                       
</h:outputLink>
                                                                   
</td>
                                                                    <td
class="bg_bt_or_right" width="5"><img src="images/pix.gif"
                                                                       
                                      width="5" height="1" alt=""/>
                                                                   
</td>
                                                                </tr>
                                                            </table>
                                                        </td>
                                                    </tr>
                                                </table>
                                            </td>
                                        </tr>
                                      <tr>
                                          <td>
                                              &#160;
                                          </td>
                                      </tr>
                                  </table>
                                </h:panelGroup>
                              </h:panelGroup>
                              <!-- /forgot password -->
                            </td>
                        </tr>
                    </table>
                </td>
                <!--end right part-->
                <td><img src="images/pix.gif" width="23" alt=""/></td>
            </tr>
            <!-- bottom corners-->
            <tr>
                <td colspan="5" align="left" valign="top">
                    <table width="100%" border="0" cellpadding="0"
cellspacing="0">
                        <tr>
                            <td><img src="images/pix.gif" width="23"
height="1" alt=""/></td>
                            <td width="100%">
                                <table width="100%" cellpadding="0"
cellspacing="0">
                                    <tr>
                                        <td width="18"><img
src="images/general/corner_bt_left.gif" width="18"
                                                            height="15"
alt=""/></td>
                                        <td width="100%"
class="bg_white"><img src="images/pix.gif" alt=""/></td>
                                        <td width="18"><img
src="images/general/corner_bt_right.gif" width="18"
                                                            height="15"
alt=""/></td>
                                    </tr>
                                </table>
                            </td>
                            <td><img src="images/pix.gif" width="23"
height="1" alt=""/></td>
                            <td width="325" align="left" valign="top">
                                <table width="325" cellpadding="0"
cellspacing="0">
                                    <tr>
                                        <td width="18"><img
src="images/general/corner_bt_left.gif" width="18"
                                                            height="15"
alt=""/></td>
                                        <td width="100%"
class="bg_white"><img src="images/pix.gif" alt=""/></td>
                                        <td width="18"><img
src="images/general/corner_bt_right.gif" width="18"
                                                            height="15"
alt=""/></td>
                                    </tr>
                                </table>
                            </td>
                            <td><img src="images/pix.gif" width="23"
height="1" alt=""/></td>
                        </tr>
                    </table>
                </td>
            </tr>
            <!--end bottom corners-->
            <tr>
                <td><img src="images/pix.gif" width="1" height="25"
alt=""/></td>
            </tr>
        </table>
    </td>
</tr>
<tr>
    <td class="bg_green" width="100%"></td>
</tr>
<tr>
    <td><img src="images/pix.gif" width="1" height="2" alt=""/></td>
</tr>
<!--footer-->
<tr>
    <td>
        <table width="100%" cellspacing="0" cellpadding="0">
            <tr>
                <td width="15px" class="bg_foot">

                </td>
                <td class="bg_foot" style="text-align:left;">
                    Toda!Bridge <h:outputText
value="#{appBean.version}"/><h:outputText value=",
#{appBean.buildDate}"
                                                                       
                rendered="#{not empty appBean.buildDate}"/>
                </td>
                <td class="bg_foot">
                    <h:outputLink
value="http://www.todacell.com/about-us" styleClass="linkfoot_login">
                        <h:outputText
value="#{bundle['inc_footer.about']}"/>
                    </h:outputLink>
                    &#160;&#160;|&#160;&#160;
                    <h:outputLink value="http://www.todacell.com/"
styleClass="linkfoot_login">
                        <h:outputText
value="#{bundle['inc_footer.products']}"/>
                    </h:outputLink>
                    &#160;&#160;|&#160;&#160;
                    <h:outputLink
value="http://www.todacell.com/products/todabridge-publishers"
styleClass="linkfoot_login">
                        <h:outputText
value="#{bundle['inc_footer.solutions']}"/>
                    </h:outputLink>
                    &#160;&#160;|&#160;&#160;
                    <h:outputLink
value="http://www.todacell.com/contact-us" styleClass="linkfoot_login">
                        <h:outputText
value="#{bundle['inc_footer.contact']}"/>
                    </h:outputLink>
                </td>
                <td width="15px" class="bg_foot"></td>
            </tr>
        </table>
    </td>
</tr>
<!--end footer-->
</table>
</td>
</tr>
</table>
</h:form>
</h:body>
<!--
</f:view>
-->
</html>


inc_head.xhtml:
-----------------------------
<!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:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:t="http://myfaces.apache.org/tomahawk"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:rich="http://richfaces.org/rich">
<f:loadBundle basename="com.todacell.ui.view.i18n.bundle.resources"
var="bundle" />
<h:head>
    <title>Todacell - <h:outputText
value="#{requestScope['pageTitle']}" rendered="#{not empty
requestScope['pageTitle']}" /></title>
    <link rel="shortcut icon" href="images/favicon.ico"
type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="css/css.css" />
    <script type='text/javascript' src='js/ajax.js'></script>
    <meta content="#{appBean.sessionLiveInterval}" name="hello"></meta>
    <script type="text/javascript">
        //<![CDATA[
        function InitClient() {
            this.arrFunc = new Array();
        }
        InitClient.prototype.start = function() {
            var str = "";
            for (key in this.arrFunc) {
                if (this.arrFunc.hasOwnProperty(key)) {
                    this.arrFunc[key]();
                }
            }
        };
        InitClient.prototype.push = function(func) {
            this.arrFunc.push(func);
        };

        var initClient = new InitClient();

        initClient.push(
            function() {
               
window.setInterval("Ajax.HTTPServerRequest('sessionKeepAlive', null,
false);", #{appBean.sessionLiveInterval} );
            }
        );
        //]]>
    </script>
</h:head>
<rich:jQuery selector="document" timing="domready"
query="ready(initClient.start())" />
<h:panelGroup rendered="#{empty requestScope['isSkipMootools']}"
escape="false">
    <script type='text/javascript' src='js/mootools.js'></script>
</h:panelGroup>
</html>


faces-config.xml:
--------------------------
<?xml version="1.0" encoding="windows-1255"?>
<!DOCTYPE faces-config PUBLIC
    "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
    "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config version="2.0" 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-facesconfig_2_0.xsd">

  <application>
    <locale-config>
      <default-locale>en</default-locale>
      <supported-locale>ja</supported-locale>
    </locale-config>
   
<message-bundle>com.todacell.ui.view.i18n.bundle.resources</message-bun
dle>
  </application>

  <lifecycle>
   
<phase-listener>com.todacell.ui.view.i18n.LocalePhaseListener</phase-li
stener>
  </lifecycle>


</faces-config>


LoginBean.java
------------------------
package com.todacell.ui.view.bean;

import com.ocpsoft.pretty.faces.annotation.URLMapping;
import com.todacell.commons.date.DateUtils;
import com.todacell.commons.email.SendEmail;
import com.todacell.commons.enc.Base64Encrypter;
import com.todacell.ui.model.bo.publisher.User;
import com.todacell.ui.model.bo.publisher.UserIdentity;
import com.todacell.ui.model.bo.system.AdvertiserStatus;
import com.todacell.ui.model.bo.system.PublisherStatus;
import com.todacell.ui.model.bo.system.ServiceType;
import com.todacell.ui.model.bo.system.UserRole;
import com.todacell.ui.model.dao.DAOFactory;
import com.todacell.ui.view.util.CookieUtil;
import com.todacell.ui.view.util.FacesUtil;
import com.todacell.ui.view.util.PropKey;
import com.todacell.ui.view.util.ViewUtil;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import java.net.URLDecoder;
import java.util.Date;
import java.util.Locale;

/**
 * @author Bashan
 * @version 1.0, 08/04/2008
 */


@ManagedBean(name = "login")
@ViewScoped
@URLMapping(id = "login", pattern = "/login", viewId = "/login.jsf")
public class LoginBean {
    private static final Log log = LogFactory.getLog(LoginBean.class);

    private String username;
    private String password;
    private boolean isRemember;
    private String language;

    private String mode;
    private String usernameForgot;

    private String resetPassword;
    private String resetPasswordConfirm;
    private String confirmationCode =
FacesUtil.getRequestParameter(RequestParamNames.CONFIRMATION_CODE);
    private Boolean isConfirmationCodeValid;
    private Boolean isActivationCodeValid;
    private String next;

    public LoginBean() {
        setNext(FacesUtil.getRequestParameter("next"));
        if (next != null && !("".equals(next))) {
            try {
                setNext(URLDecoder.decode(next, "UTF-8"));
            } catch (Exception e) {
            }

            if (!next.equals("true")) {
                setNext(Base64Encrypter.decode(next));
            }
            loginFromNextToken(next);
            if (ViewUtil.isLogged(FacesUtil.getRequest().getSession())
&& !next.equals("true")) {
                FacesUtil.redirect(next);
            }
        }
    }

    public void loginAction() {
        UserIdentity userIdentity =
DAOFactory.getUserDAO().getUserIdentity(username, password);

        if (userIdentity != null) {
            User userToCheck =
DAOFactory.getUserDAO().getUser(userIdentity.getUserId());

            if (null == userToCheck.getAdvertiser() ||
                userToCheck.getAdvertiser().getServiceType() !=
ServiceType.SELF_SERVICE) {
                FacesUtil.addErrorMessage("btnLogin",
"#{bundle['login.error']}");
                return;
            }

            if (userToCheck.getUserRole().equals(UserRole.ADVERTISER)
&&
                !userToCheck.getAdvertiser().getActive() &&
               
!AdvertiserStatus.Inactive.equals(userToCheck.getAdvertiser().getStatus
())) {
                FacesUtil.addErrorMessage("btnLogin",
"#{bundle['login.error.inactive.account']}");
                return;
            }

            String errorMessage =
ViewUtil.validateUser(FacesUtil.getRequest(), username, password);
            if (errorMessage != null) {
                FacesUtil.addErrorMessage("btnLogin", errorMessage);
                return;
            }

            // user is allowed to log in

            //send welcome Email
            if (null == userIdentity.getUser().getFirstLoginDate()) {
                User user = userIdentity.getUser();
                new SendEmail(user, PropKey.MAIL_WELCOME_SUBJECT,
PropKey.MAIL_WELCOME_BODY).start();
                user.setFirstLoginDate(new Date());
                DAOFactory.getPublisherDAO().saveObject(user);
            }

            if (isRemember) {
                CookieUtil.setUserAutoLogin(FacesUtil.getResponse(),
username, password);
            } else {
               
CookieUtil.removeUserAutoLogin(FacesUtil.getResponse());
            }

            if (next != null && !("".equals(next))) {
                //setNext(Base64Encrypter.decode(next));
                FacesUtil.redirect(next);
            } else {
               
FacesUtil.redirect(ViewUtil.getWelcomePage(FacesUtil.getUserSession()))
;
            }
        } else {
            FacesUtil.addErrorMessage("btnLogin",
"#{bundle['login.error']}");
        }
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
/*
     
FacesContext.getCurrentInstance().getExternalContext().getRequestParame
terMap()
*/
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNext() {
        return next;
    }

    public void setNext(String next) {
        this.next = next;
    }

    public boolean isRemember() {
        return isRemember;
    }

    public void setRemember(boolean remember) {
        isRemember = remember;
    }

    public String getLanguage() {
        if (language == null) {
            language =
CookieUtil.getCookieValue(FacesUtil.getRequest(), CookieUtil.LANG);
            language = language != null ? language :
Locale.US.toString();
        }

        return language;
    }

    public String getUsernameForgot() {
        return usernameForgot;
    }

    public void setUsernameForgot(String usernameForgot) {
        this.usernameForgot = usernameForgot;
    }

    public void changePasswordAction() {
        if (!resetPassword.equals(resetPasswordConfirm)) {
            FacesUtil.addErrorMessage("formLogin:resetPassword",
"#{bundle['account_user.password.not.equal']}");
        } else {
            UserIdentity userIdentity =
DAOFactory.getUserDAO().getUserIdentityByConfirmationCode(confirmationC
ode);
            userIdentity.setConfirmationCode(null);
            userIdentity.setConfirmationDate(null);
            userIdentity.setPassword(resetPassword);
            DAOFactory.getCampaignDAO().saveObject(userIdentity);
            FacesUtil.redirect("login.jspx?passwordChanged=true");
        }
    }

    public void sendMailAction() throws Exception {
        UserIdentity userIdentity =
DAOFactory.getUserDAO().getUserIdentity(usernameForgot);
        if (userIdentity != null) {
            String sha = DigestUtils.shaHex(new Date() +
FacesUtil.getSession().getId());
            userIdentity.setConfirmationCode(sha);
            userIdentity.setConfirmationDate(new Date());
            DAOFactory.getCampaignDAO().saveObject(userIdentity);
            User user = userIdentity.getUser();
            String passwordResetUrl = FacesUtil.getServerContext() +
                "/login.jspx?mode=reset_password&" +
RequestParamNames.CONFIRMATION_CODE + "=" + sha;
            new SendEmail(user, PropKey.MAIL_PASSWORD_RESET_SUBJECT,
PropKey.MAIL_PASSWORD_RESET_BODY, passwordResetUrl).start();
            FacesUtil.redirect("login.jspx?mode=forgot_password_sent");
        } else {
            FacesUtil.addErrorMessage("formLogin:usernameForgot",
"#{bundle['login.forgot.password.user.not.found']}");
        }
    }

    public String getMode() {
        String mode = FacesUtil.getRequestParameter("mode");
        return mode != null ? mode : "login";
    }

    public void setMode(String mode) {
        this.mode = mode;
    }

    public String getResetPassword() {
        return resetPassword;
    }

    public void setResetPassword(String resetPassword) {
        this.resetPassword = resetPassword;
    }

    public String getResetPasswordConfirm() {
        return resetPasswordConfirm;
    }

    public void setResetPasswordConfirm(String resetPasswordConfirm) {
        this.resetPasswordConfirm = resetPasswordConfirm;
    }

    public String getConfirmationCode() {
        return confirmationCode;
    }

    public void setConfirmationCode(String confirmationCode) {
        this.confirmationCode = confirmationCode;
    }

    public boolean isConfirmationCodeValid() {
        if (isConfirmationCodeValid == null) {
            UserIdentity userIdentity =
DAOFactory.getUserDAO().getUserIdentityByConfirmationCode(confirmationC
ode);
            isConfirmationCodeValid = userIdentity != null &&
DateUtils.diffMinutes(new Date(), userIdentity.getConfirmationDate())
<= 30;
        }
        return isConfirmationCodeValid;
    }

    public boolean isActivationCodeValid() {
        String activationCode =
FacesUtil.getRequestParameter(RequestParamNames.ACTIVATION_CODE);
        if (isActivationCodeValid == null) {
            UserIdentity userIdentity =
DAOFactory.getUserDAO().getUserIdentityByConfirmationCode(activationCod
e);
            isActivationCodeValid = userIdentity != null &&
userIdentity.getConfirmationCode().equalsIgnoreCase(activationCode);
        }
        if (isActivationCodeValid)
            activateUser(activationCode);

        return isActivationCodeValid;
    }

    private void activateUser(String activationCode) {
        if (isActivationCodeValid) {
            UserIdentity userIdentity =
DAOFactory.getUserDAO().getUserIdentityByConfirmationCode(activationCod
e);
            setUsername(userIdentity.getUsername());
            User userToActivate =
DAOFactory.getUserDAO().getUser(userIdentity.getUserId());
            userToActivate.setActivationDate(new Date());
            userToActivate.setIsActive(true);
            if (userToActivate.getPublisher() != null) {
               
userToActivate.getPublisher().setStatus(PublisherStatus.New);
                userToActivate.getPublisher().setLastStatusDate(new
Date());
            }

            if (userToActivate.getAdvertiser() != null) {
               
userToActivate.getAdvertiser().setStatus(AdvertiserStatus.New);
                userToActivate.getAdvertiser().setLastStatusDate(new
Date());
            }
            DAOFactory.getPublisherDAO().saveObject(userToActivate);
        }
    }

    private void loginFromNextToken(String urlParam) {
        try {
            urlParam = java.net.URLDecoder.decode(urlParam, "UTF-8");//
        } catch (Exception e) {
            log.error("Failed Decoding: urlParam ", e);
        }
        String advertiserToken = "";
        String[] customParam = urlParam.split("&");
        for (String param : customParam) {
            param = param.replace('=', ' ');
            String[] paramSTRArray = param.split(" ");
            String paramKey = paramSTRArray[0];
            String paramValue = paramSTRArray.length > 1 ?
paramSTRArray[1] : "-1";

            if ("token".equals(paramKey)) {
                advertiserToken = paramValue.toString();
            }
        }

        UserIdentity userIdentity =
DAOFactory.getPublisherDAO().getUserIdentityByToken(advertiserToken);
        if (null != userIdentity) {
            ViewUtil.validateUser(FacesUtil.getRequest(),
userIdentity.getUsername(), userIdentity.getPassword());
        }
    }
}


web.xml:
--------------
<?xml version = '1.0' encoding = 'windows-1255'?>
<web-app version="3.0"
         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_3_0.xsd"
>

    <display-name>JavaServerFaces</display-name>

    <filter>
        <filter-name>Pretty Filter</filter-name>
        <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Pretty Filter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>

    <context-param>
        <param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>com.ocpsoft.pretty.BASE_PACKAGES</param-name>
        <param-value>com.todacell.ui.view.bean</param-value>
    </context-param>



    <context-param>
        <param-name>org.richfaces.skin</param-name>
        <param-value>plain</param-value>
    </context-param>
    <context-param>
        <param-name>org.richfaces.enableControlSkinning</param-name>
        <param-value>false</param-value>
    </context-param>

    <!-- Change to "Production" when you are ready to deploy -->
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

<!--
    <!&ndash; Welcome page &ndash;>
    <welcome-file-list>
        <welcome-file>faces/hello.xhtml</welcome-file>
    </welcome-file-list>
-->

    <!-- JSF mapping -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Map these files with JSF -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>Init Servlet</servlet-name>
       
<servlet-class>com.todacell.ui.view.servlet.InitServlet</servlet-class>
        <init-param>
            <param-name>conf_dir</param-name>
            <param-value>/WEB-INF/conf/</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Init Servlet</servlet-name>
        <url-pattern>/is</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>SessionKeepAlive</servlet-name>
        <servlet-class>
            com.todacell.ui.view.servlet.SessionKeepAlive
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SessionKeepAlive</servlet-name>
        <url-pattern>/sessionKeepAlive</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>Chart Servlet</servlet-name>
        <servlet-class>
            com.todacell.ui.view.chart.ChartServlet
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Chart Servlet</servlet-name>
        <url-pattern>/chart/*</url-pattern>
    </servlet-mapping>

</web-app>


jar files:
-------------
antlr-2.7.6.jar
asm-3.1.jar
asm-attrs.jar
asm.jar
axis.jar
batik-awt-util-1.6-1.jar
batik-ext-1.6-1.jar
batik-gui-util-1.6-1.jar
batik-util-1.6-1.jar
c3p0-0.9.1.2.jar
cglib-2.1.3.jar
commons-beanutils-1.7.0.jar
commons-cli-1.1.jar
commons-codec-1.3.jar
commons-codec-1.4.jar
commons-collections-3.2.1.jar
commons-collections-3.2.jar
commons-compress-1.0.jar
commons-configuration-1.5.jar
commons-configuration-1.6.jar
commons-digester-1.6.jar
commons-discovery-0.2.jar
commons-discovery-0.4.jar
commons-el-1.0.jar
commons-email.jar
commons-fileupload-1.2.1.jar
commons-httpclient-3.0.1.jar
commons-io-1.3.2.jar
commons-io-1.4.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
commons-validator-1.3.1.jar
concurrentlinkedhashmap-lru-1.2.jar
cssparser-0.9.9.jar
dom4j-1.6.1.jar
dom4j-1.6.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
fdsapi-1.2.jar
guava-13.0.1.jar
hibernate-3.3.1.jar
hibernate-annotations-3.4.0.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-validator-4.2.0.Final.jar
hibernate-validator.jar
hibernate3.jar
hsqldb.jar
httpclient-4.0.jar
httpcore-4.0.1.jar
icu4j-4_2_1.jar
iText-2.1.4.jar
iTextAsian.jar
iTextAsianCmaps.jar
jakarta-oro-2.0.8.jar
jamon-2.7.jar
janino.jar
jasperreports-3.5.1.jar
java2html-5.0.jar
javassist-3.4.GA.jar
javax.faces-2.2.3.jar
jaxrpc.jar
jdom.jar
jregex1.2_01.jar
jsf-facelets-1.1.14.jar
jsfpager.jar
json_simple-1.1.jar
jstl.jar
jta.jar
junit.jar
jxl-2.6.jar
kxml2-2.3.0.jar
log4j-1.2.15.jar
log4j_appender.jar
mail.jar
oro-2.0.8.jar
poi-3.5-beta5-20090219.jar
poi-3.7-20101029.jar
poi-contrib-3.5-beta5-20090219.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar
prettyfaces-jsf2-3.3.3.jar
proxool-0.8.3.jar
quartz-1.6.0.jar
richfaces-components-api-4.3.3.Final.jar
richfaces-components-ui-4.3.3.Final.jar
richfaces-core-api-4.3.3.Final.jar
richfaces-core-impl-4.3.3.Final.jar
saaj.jar
slf4j-api-1.5.6.jar
slf4j-log4j12-1.5.6.jar
sqljdbc.jar
tar.jar
tomahawk20-1.1.14.jar
validation-api-1.0.0.GA.jar
velocity-1.5.jar
wsdl4j-1.5.1.jar
xml-apis-1.0.b2.jar
xmlbeans-2.3.0.jar
xmlParserAPIs-2.0.2.jar
xstream-1.4.2.jar