MyFaces Tomahawk JSCookMenu - failure to navigate to page defined by action in faces-config
This is my first attempt at using JSCookMenu and its homepage (http://jscook.yuanheng.org/JSCookMenu/) has been down for more than a week, so forgive me if the answer to my question should appear on there.

I have a simple web app, stripped down in order to test JSCookMenu's action forwarding to a new JSF page.

I have an admin page with a JSCookMenu (Apache MyFaces Tomahawk tags) with 2 menu items, 'Home Without AL' and 'Home With AL'.  I expect that when I click on these menu items that I will navigate to the 'home' page which will just display a 'Hello World' message for now.  This navigation is not happening, however.  A push in the right direction would be greatly appreciated :-)

Here's my faces-config, my admin page (which uses layout page), my home page, my web.xml (with filter mapped) and a description of what happens when I click on the menu item.

faces-config.xml:

    <?xml version='1.0' encoding='UTF-8'?>

    <!-- Copyright 2004-2006 Sun Microsystems, Inc. All rights reserved.
    SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. -->

    <faces-config 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_1_2.xsd"
    version="1.2">
   
      <!-- from project setup -->
      <application>
   <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> 
      </application>
    
      <navigation-rule>
   <navigation-case>
       <from-outcome>go_home</from-outcome>
       <to-view-id>/home.jsp</to-view-id>
   </navigation-case>
      </navigation-rule>

    </faces-config>

layout.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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:m="http://code.google.com/p/gmaps4jsf/">
    <head>

 <title>
    <ui:insert name="title">Beach Water Quality</ui:insert>
 </title>
   
   <!-- JSCook Menu -->
 <script language="JavaScript" src="jscookmenu/JSCookMenu.js" type="text/javascript" />
 <script language="JavaScript" src="jscookmenu/ThemeOffice/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeOffice/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeMiniBlack/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeMiniBlack/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeIE/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeIE/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemePanel/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemePanel/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeGray/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeGray/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeOffice2003/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeOffice2003/theme.css" type="text/css" />
     
    </head>

    <body onLoad="#{onload}">
 
 <h:panelGrid id="container_div" forceId="true" >

  <ui:insert name="header">
   <ui:include src="header.xhtml"/>
  </ui:insert>
  
  <ui:insert name="content">
       <!-- include default content in here -->
  </ui:insert>
  
  <ui:insert name="footer">
   <ui:include src="footer.xhtml"/>
  </ui:insert>
   
 </h:panelGrid>

    </body>

    </html>



admin.jsp:

    <jsp:forward page="admin.jsf"/>

admin.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:ui="http://java.sun.com/jsf/facelets"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:m="http://code.google.com/p/gmaps4jsf/"
 xmlns:c="http://java.sun.com/jstl/core"
 xmlns:t="http://myfaces.apache.org/tomahawk" > 
 

 <ui:composition template="/WEB-INF/layout/layout.xhtml">
  <ui:define name="content"> 
   <f:view contentType="text/html">
    <h:form id="form" >           
        <t:jscookMenu layout="vbr" theme="ThemeIE">
            <t:navigationMenuItem itemLabel="Home" itemValue="go_home" action="go_home"/>
        </t:jscookMenu>
    </h:form>
   </f:view> 
  </ui:define>
 </ui:composition>
    </html>


home.jsp:

    <jsp:forward page="/home.jsf"/>

home.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:ui="http://java.sun.com/jsf/facelets"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:m="http://code.google.com/p/gmaps4jsf/"
 xmlns:c="http://java.sun.com/jstl/core"
 >

 <ui:composition template="/WEB-INF/layout/layout.xhtml">

  <ui:define name="content">
  
   <f:view contentType="text/html">
    <h:form id="form" >
     <h:outputText value="Hello World"/>     
    </h:form>
   </f:view> 
 
  </ui:define>

 </ui:composition>
    </html>

web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
 <description>Beachwater web.xml</description>

   <!-- Use Documents Saved as *.xhtml -->
   <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
   </context-param>

   <!-- Special Debug Output for Development -->
   <context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
   </context-param>

   <!-- Optional JSF-RI Parameters to Help Debug -->
   <context-param>
    <param-name>com.sun.faces.validateXml</param-name>
    <param-value>true</param-value>
   </context-param>
   <context-param>
    <param-name>com.sun.faces.verifyObjects</param-name>
    <param-value>true</param-value>
   </context-param>


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

   <!-- Faces Servlet Mapping -->
   <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>

   <!-- This is for File Upload -->
   <filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
       <init-param>
    <description>Set the size limit for uploaded files.
        Format: 10 - 10 bytes
         10k - 10 KB
         10m - 10 MB
         1g - 1 GB
    </description>
    <param-name>uploadMaxFileSize</param-name>
    <param-value>20m</param-value>
       </init-param>
       <init-param>
    <description>
        Set the threshold size - files below this limit are stored 
        in memory, files above this limit are stored on disk.
     Format: 10  - 10 bytes
      10k - 10 KB
      10m - 10 MB
      1g  - 1 GB
    </description>
    <param-name>uploadThresholdSize</param-name>
    <param-value>100k</param-value>
       </init-param>
       <init-param>
    <description>
        Set the path where the intermediary files will be stored.
    </description>
    <param-name>uploadRepositoryPath</param-name>
    <param-value>/temp</param-value>
       </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 must match the name of your javax.faces.webapp.FacesServlet entry -->
       <servlet-name>Faces Servlet</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>

  </web-app>

I have tomahawk12-1.1.9.jar in my classpath (also tried tomahawk-1.1.9.jar), which I downloaded from http://myfaces.apache.org/tomahawk/download.html.

I have a jscookmenu folder at the root of my webapp, containing a folder for each theme (each with theme.css and theme.js), effect.js and the JSCookMenu.js from jscookmenu-2.0.4.zip, all of which I downloaded from http://sourceforge.net/projects/jscook/files/.  Latest release was 2009-05-25.

The web app is deployed on Sun GlassFish Enterprise Server v2.1 on localhost.  
I browse to http://localhost:8080/beachwater/admin.jsp and click on the Home menu item.  
New window is opened with address bar, "http://localhost:8080/beachwater/form_j_id7_menu:A%5Dgo_home" and content, "Glassfish error page, HTTP Status 404: The requested resource () is not available."
 
Nothing gets written to the server.log

The window is being opened by the cmItemMouseUp function in JSCookMenu.js.  Do I have the wrong version of the javascript?  Any ideas why the filter isn't invoking the action specified in faces-config? 

MyFaces Tomahawk JSCookMenu - failure to navigate to page defined by action in faces-config
===

This is my first attempt at using JSCookMenu and its homepage (http://jscook.yuanheng.org/JSCookMenu/) has been down for more than a week, so forgive me if the answer to my question should appear on there.

I have a simple web app, stripped down in order to test JSCookMenu's action forwarding to a new JSF page.

I have an admin page with a JSCookMenu (Apache MyFaces Tomahawk tags) with 2 menu items, 'Home Without AL' and 'Home With AL'.  I expect that when I click on these menu items that I will navigate to the 'home' page which will just display a 'Hello World' message for now.  This navigation is not happening, however.  A push in the right direction would be greatly appreciated :-)

Here's my faces-config, my admin page (which uses layout page), my home page, my web.xml (with filter mapped) and a description of what happens when I click on the menu item.

faces-config.xml:

    <?xml version='1.0' encoding='UTF-8'?>

    <!-- Copyright 2004-2006 Sun Microsystems, Inc. All rights reserved.
    SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. -->

    <faces-config 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_1_2.xsd"
    version="1.2">
   
      <!-- from project setup -->
      <application>
   <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> 
      </application>
    
      <navigation-rule>
   <navigation-case>
       <from-outcome>go_home</from-outcome>
       <to-view-id>/home.jsp</to-view-id>
   </navigation-case>
      </navigation-rule>

    </faces-config>

layout.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:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html" 
      xmlns:m="http://code.google.com/p/gmaps4jsf/">
    <head>

 <title>
    <ui:insert name="title">Beach Water Quality</ui:insert>
 </title>
   
   <!-- JSCook Menu -->
 <script language="JavaScript" src="jscookmenu/JSCookMenu.js" type="text/javascript" />
 <script language="JavaScript" src="jscookmenu/ThemeOffice/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeOffice/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeMiniBlack/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeMiniBlack/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeIE/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeIE/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemePanel/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemePanel/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeGray/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeGray/theme.css" type="text/css" />
 <script language="JavaScript" src="jscookmenu/ThemeOffice2003/theme.js" />
 <link rel="stylesheet" href="jscookmenu/ThemeOffice2003/theme.css" type="text/css" />
     
    </head>

    <body onLoad="#{onload}">
 
 <h:panelGrid id="container_div" forceId="true" >

  <ui:insert name="header">
   <ui:include src="header.xhtml"/>
  </ui:insert>
  
  <ui:insert name="content">
       <!-- include default content in here -->
  </ui:insert>
  
  <ui:insert name="footer">
   <ui:include src="footer.xhtml"/>
  </ui:insert>
   
 </h:panelGrid>

    </body>

    </html>



admin.jsp:

    <jsp:forward page="admin.jsf"/>

admin.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:ui="http://java.sun.com/jsf/facelets"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:m="http://code.google.com/p/gmaps4jsf/"
 xmlns:c="http://java.sun.com/jstl/core"
 xmlns:t="http://myfaces.apache.org/tomahawk" > 
 

 <ui:composition template="/WEB-INF/layout/layout.xhtml">
  <ui:define name="content"> 
   <f:view contentType="text/html">
    <h:form id="form" >           
        <t:jscookMenu layout="vbr" theme="ThemeIE">
            <t:navigationMenuItem itemLabel="Home" itemValue="go_home" action="go_home"/>
        </t:jscookMenu>
    </h:form>
   </f:view> 
  </ui:define>
 </ui:composition>
    </html>


home.jsp:

    <jsp:forward page="/home.jsf"/>

home.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:ui="http://java.sun.com/jsf/facelets"
 xmlns:h="http://java.sun.com/jsf/html"
 xmlns:f="http://java.sun.com/jsf/core"
 xmlns:m="http://code.google.com/p/gmaps4jsf/"
 xmlns:c="http://java.sun.com/jstl/core"
 >

 <ui:composition template="/WEB-INF/layout/layout.xhtml">

  <ui:define name="content">
  
   <f:view contentType="text/html">
    <h:form id="form" >
     <h:outputText value="Hello World"/>     
    </h:form>
   </f:view> 
 
  </ui:define>

 </ui:composition>
    </html>

web.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
 <description>Beachwater web.xml</description>

   <!-- Use Documents Saved as *.xhtml -->
   <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
   </context-param>

   <!-- Special Debug Output for Development -->
   <context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
   </context-param>

   <!-- Optional JSF-RI Parameters to Help Debug -->
   <context-param>
    <param-name>com.sun.faces.validateXml</param-name>
    <param-value>true</param-value>
   </context-param>
   <context-param>
    <param-name>com.sun.faces.verifyObjects</param-name>
    <param-value>true</param-value>
   </context-param>


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

   <!-- Faces Servlet Mapping -->
   <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>

   <!-- This is for File Upload -->
   <filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
       <init-param>
    <description>Set the size limit for uploaded files.
        Format: 10 - 10 bytes
         10k - 10 KB
         10m - 10 MB
         1g - 1 GB
    </description>
    <param-name>uploadMaxFileSize</param-name>
    <param-value>20m</param-value>
       </init-param>
       <init-param>
    <description>
        Set the threshold size - files below this limit are stored 
        in memory, files above this limit are stored on disk.
     Format: 10  - 10 bytes
      10k - 10 KB
      10m - 10 MB
      1g  - 1 GB
    </description>
    <param-name>uploadThresholdSize</param-name>
    <param-value>100k</param-value>
       </init-param>
       <init-param>
    <description>
        Set the path where the intermediary files will be stored.
    </description>
    <param-name>uploadRepositoryPath</param-name>
    <param-value>/temp</param-value>
       </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 must match the name of your javax.faces.webapp.FacesServlet entry -->
       <servlet-name>Faces Servlet</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>

  </web-app>

I have tomahawk12-1.1.9.jar in my classpath (also tried tomahawk-1.1.9.jar), which I downloaded from http://myfaces.apache.org/tomahawk/download.html.

I have a jscookmenu folder at the root of my webapp, containing a folder for each theme (each with theme.css and theme.js), effect.js and the JSCookMenu.js from jscookmenu-2.0.4.zip, all of which I downloaded from http://sourceforge.net/projects/jscook/files/.  Latest release was 2009-05-25.

The web app is deployed on Sun GlassFish Enterprise Server v2.1 on localhost.  
I browse to http://localhost:8080/beachwater/admin.jsp and click on the Home menu item.  
New window is opened with address bar, "http://localhost:8080/beachwater/form_j_id7_menu:A%5Dgo_home" and content, "Glassfish error page, HTTP Status 404: The requested resource () is not available."
 
Nothing gets written to the server.log

The window is being opened by the cmItemMouseUp function in JSCookMenu.js.  Do I have the wrong version of the javascript?  Any ideas why the filter isn't invoking the action specified in faces-config? 
