7 Replies Latest reply on Sep 12, 2007 7:24 AM by msauer

    Ajax4JSF Trinidad Integration

      Hi I am trying to integrate Trinidad into an existing application. I have tried to follow the example given online. My app gets to my first facelets page but only displays the page title in the browser window.

      My web.xml is below. Can anyone tell me what I am doing wrong?

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="2.4" 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">
       <description>Express Web Application</description>
       <display-name>Express Web Application</display-name>
       <context-param>
       <param-name>javax.faces.CONFIG_FILES</param-name>
       <param-value>/WEB-INF/faces_config_ex.xml,/WEB-INF/faces_config_app.xml,/WEB-INF/faces_config_universal.xml</param-value>
       </context-param>
       <context-param>
       <param-name>facelets.SKIP_COMMENTS</param-name>
       <param-value>true</param-value>
       </context-param>
       <context-param>
       <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
       <param-value>com.sun.facelets.FaceletViewHandler</param-value>
       </context-param>
       <context-param>
       <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
       <param-value>.xhtml</param-value>
       </context-param>
       <context-param>
       <param-name>facelets.REFRESH_PERIOD</param-name>
       <param-value>2</param-value>
       </context-param>
       <context-param>
       <param-name>facelets.DEVELOPMENT</param-name>
       <param-value>false</param-value>
       </context-param>
       <context-param>
       <param-name>com.sun.faces.validateXml</param-name>
       <param-value>false</param-value>
       </context-param>
       <context-param>
       <param-name>com.sun.faces.verifyObjects</param-name>
       <param-value>false</param-value>
       </context-param>
       <context-param>
       <param-name>facelets.LIBRARIES</param-name>
       <param-value>/WEB-INF/tomahawk.taglib.xml;/WEB-INF/protech.taglib.xml;/WEB-INF/sandbox.taglib.xml</param-value>
       </context-param>
       <context-param>
       <param-name>org.ajax4jsf.SKIN</param-name>
       <param-value>#{infoBean.skin}</param-value>
       </context-param>
       <!--setting to server over client is supposed to increase performance-->
       <context-param>
       <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
       <param-value>server</param-value>
       </context-param>
       <context-param>
       <param-name>org.apache.myfaces.trinidad.DEBUG_JAVASCRIPT</param-name>
       <param-value>false</param-value>
       </context-param>
       <context-param>
       <param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>
       <param-value>true</param-value>
       </context-param>
       <context-param>
       <param-name>org.apache.myfaces.trinidad.resource.DEBUG</param-name>
       <param-value>true</param-value>
       </context-param>
       <!-- FaceletViewHandler configuration -->
       <context-param>
       <param-name>org.apache.myfaces.trinidad.ALTERNATE_VIEW_HANDLER</param-name>
       <param-value>com.sun.facelets.FaceletViewHandler</param-value>
       </context-param>
       <context-param>
       <param-name>facelets.VIEW_MAPPINGS</param-name>
       <param-value>*.xhtml</param-value>
       </context-param>
       <context-param>
       <param-name>org.apache.myfaces.trinidad.CACHE_VIEW_ROOT</param-name>
       <param-value>false</param-value>
       </context-param>
       <filter>
       <display-name>Ajax4jsf Filter</display-name>
       <filter-name>ajax4jsf</filter-name>
       <filter-class>org.ajax4jsf.Filter</filter-class>
       <!-- <init-param>
       <param-name>forceparser</param-name>
       <param-value>false</param-value>
       </init-param> -->
       </filter>
       <filter>
       <filter-name>trinidad</filter-name>
       <filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
       </filter>
       <filter-name>ajax4jsf</filter-name>
       <servlet-name>Faces Servlet</servlet-name>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>FORWARD</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
       </filter-mapping>
       <filter-mapping>
       <filter-name>trinidad</filter-name>
       <servlet-name>Faces Servlet</servlet-name>
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>FORWARD</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
       </filter-mapping>
       <servlet>
       <servlet-name>Faces Servlet</servlet-name>
       <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
       </servlet>
       <filter>
       <filter-name>extensionsFilter</filter-name>
       <filter-class>
       org.apache.myfaces.component.html.util.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>100m</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>
       <param-name>uploadRepositoryPath</param-name>
       <param-value>/temp</param-value>
       <description>Set the path where the intermediary files will be stored.
       </description>
       </init-param>
       -->
      </filter>
      <filter-mapping>
       <filter-name>extensionsFilter</filter-name>
       <url-pattern>*.faces</url-pattern>
      </filter-mapping>
      <filter-mapping>
       <filter-name>extensionsFilter</filter-name>
       <url-pattern>/faces/*</url-pattern>
      </filter-mapping>
      <filter-mapping>
       <filter-name>extensionsFilter</filter-name>
       <url-pattern>*.htm</url-pattern>
      </filter-mapping>
       <listener>
       <listener-class>com.protech.util.DBCPoolingListener</listener-class>
       </listener>
       <listener>
       <listener-class>com.protech.util.InitParams</listener-class>
       </listener>
      <servlet>
       <servlet-name>resources</servlet-name>
       <servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>
       </servlet>
       <servlet-mapping>
       <servlet-name>Faces Servlet</servlet-name>
       <url-pattern>*.htm</url-pattern>
       </servlet-mapping>
      
       <servlet-mapping>
       <servlet-name>resources</servlet-name>
       <url-pattern>/adf/*</url-pattern>
       </servlet-mapping>
       <login-config>
       <auth-method>BASIC</auth-method>
       </login-config>
       <!-- This component has a dependency on an external resource-->
       <resource-ref>
       <description>DB Connection Pooling</description>
       <res-ref-name>jdbc/drains</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
       <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
      </web-app>
      


        • 1. Re: Ajax4JSF Trinidad Integration

          Update--I am seeing the following in my log.

          INFO: Trinidad ResourceServlet is running in debug mode. Do not use in a production environment. See the org.apache.myfaces.trinidad.resource.DEBUG parameter in /WEB-INF/web.xml
          Jul 16, 2007 12:45:12 PM org.apache.myfaces.trinidad.webapp.ResourceServlet _getResourceLoader
          WARNING: Unable to find ResourceLoader for ResourceServlet at servlet path:/pages/universal/main.htm
          Cause: Could not find resource:META-INF/servlets/resources/pages/universal/main.htm.resources


          • 2. Re: Ajax4JSF Trinidad Integration

            Update 2

            Actually I am back to were I started and my facelets page only displays the page title in the browser window.

            • 3. Re: Ajax4JSF Trinidad Integration
              suckerd

              Mhh I got the combination: trinidad, richfaces, ajax4jsf and facelets working.
              I needed to include a jar called a4j-trinidad.jar (it's in the ajax4jsf svn as subproject).

              Mhh and the a4j filter must be the first in the web.xml!

              in the faces-config.xml I had to add:
              <default-render-kit-id>
              org.apache.myfaces.trinidad.core
              </default-render-kit-id>

              and in the web.xml



              ..etc...

              <!-- resource loader servlet -->

              <servlet-name>resources</servlet-name>
              <servlet-class>
              org.apache.myfaces.trinidad.webapp.ResourceServlet
              </servlet-class>


              <servlet-mapping>
              <servlet-name>resources</servlet-name>
              <url-pattern>/adf/*</url-pattern>
              </servlet-mapping>

              • 4. Re: Ajax4JSF Trinidad Integration
                suckerd
                • 5. Re: Ajax4JSF Trinidad Integration
                  msauer

                  I think there are some issues with getting Trinidad to work with Ajax4Jsf, at least for cases where you want to re-render an element in a form based on an action on another element in the form. Please see the forum entry http://jboss.com/index.html?module=bb&op=viewtopic&t=112173.
                  I would be curious to see if you have the same problem.

                  • 6. Re: Ajax4JSF Trinidad Integration
                    suckerd

                    Hi,

                    did you manage to get it running?

                    I got richfaces and trinidad working...
                    Only issues so far is, that the the css loading doesn't seem to work right,
                    but there is a workaround (disable cache) for ajax4jsf...
                    Or put all richfaces css of one skin in an css and load it by yourself...

                    CU Mike

                    • 7. Re: Ajax4JSF Trinidad Integration
                      msauer

                      I had not tried to get RichFaces to work. I was just trying to get Trinidad and Ajax4JSF to work together. I was never able to get around the form rerender problem.