6 Replies Latest reply on Sep 15, 2010 10:05 AM by rohitram

    RichFaces and WebSphere 6.1 Skins not working(?)

    tandonam

      Has anyone had problems using RichFaces under WAS 6.1? I am tring to run the example for the tabs and toolbar. I have followed the instructions in the developer guide and the application has started up correctly.

      The problem is that the tabs are not displaying correctly. The text of the tabs is showing up on top and there is a emply table generated. The toolbar is not skinned.

      Any ideas?

      I will attach the source of the page soon.

        • 1. Re: RichFaces and WebSphere 6.1 Skins not working(?)
          tandonam

          Attached is the source:

          <%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
          <%@taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
          <%@taglib uri="http://richfaces.ajax4jsf.org/rich" prefix="rich"%>
          <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
          <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>



          index



          <f:view>

          <h:form>
          <rich:toolBar height="34" itemSeparator="line">
          <rich:toolBarGroup>
          <h:graphicImage id="edit" value="/richfaces/toolBar/images/print_edit.gif"></h:graphicImage>
          <h:outputLabel value="Edit" for="edit"></h:outputLabel>
          </rich:toolBarGroup>
          <rich:toolBarGroup>
          <h:graphicImage id="print" value="/richfaces/toolBar/images/print.gif"></h:graphicImage>
          <h:outputLabel value="Print" for="edit"></h:outputLabel>
          </rich:toolBarGroup>
          <rich:toolBarGroup>
          <h:graphicImage id="preview" value="/richfaces/toolBar/images/print_preview.gif"></h:graphicImage>
          <h:outputLabel value="Preview" for="preview"></h:outputLabel>
          </rich:toolBarGroup>
          <rich:toolBarGroup location="right">
          <h:inputText styleClass="barsearch" />
          <h:commandButton styleClass="barsearchbutton" onclick="return false;" value="Search" />
          </rich:toolBarGroup>
          </rich:toolBar>
          </h:form>


          </f:view>

          • 2. Re: RichFaces and WebSphere 6.1 Skins not working(?)

            the code itself is correct. Do you configured the filter right? do you has server diagnostic that can help to detect the problem?

            • 3. Re: RichFaces and WebSphere 6.1 Skins not working(?)
              tandonam

              The standard out has no exception related to this. I will continue to test and look.

              HEre is the web.xml. I have added the fileter as per the instructions in the dev. manual.

              <?xml version="1.0" encoding="UTF-8"?>
              <web-app id="WebApp_ID" 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">
              <display-name>
              richfacesAppWeb</display-name>
              <context-param>

              The location where state information is saved.
              Valid values are 'server' (typically saved in HttpSession) and 'client' (typically
              saved as a hidden field in the form.
              Default is server.
              <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
              <param-value>server</param-value>
              </context-param>
              <context-param>

              Comma-delimited list of context-relative resource paths under which the JSF implementation
              will look for application configuration resources, before loading a configuration resource
              named /WEB-INF/facesconfig.xml (if such a resource exists).
              <param-name>javax.faces.CONFIG_FILES</param-name>
              <param-value></param-value>
              </context-param>
              <context-param>

              The default suffix for extension-mapped resources that contain JSF components.
              Default is '.jsp'.
              <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
              <param-value>.jsp</param-value>
              </context-param>
              <context-param>

              Number of Views to be stored in the session when Server-Side State Saving is being used.
              Default is 15.
              <param-name>com.sun.faces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
              <param-value>15</param-value>
              </context-param>
              <context-param>

              If set to true while server-side state saving is being used, a serialized representation
              of the view is stored on the server. This allows for failover and sever clustering support.
              Default is false. This parameter is not available in JSF 1.0.
              <param-name>com.sun.faces.enableHighAvailability</param-name>
              <param-value>false</param-value>
              </context-param>
              <context-param>

              If set to true while client-side state saving is being used, reduces the number of bytes
              sent to the client by compressing the state before it is encoded and written as a hidden field.
              Default is false. This parameter is not available in JSF 1.0.
              <param-name>com.sun.faces.COMPRESS_STATE</param-name>
              <param-value>false</param-value>
              </context-param>
              <context-param>

              Monitors Faces JSP files for modifications and synchronizes a running server with
              the changes without restarting the server. If this parameter is set to false or
              removed from the deployment descriptor, any changes made to Faces JSP files may
              not be seen by the server until it is restarted. This parameter is usually set
              to true while the Faces JSP files are being developed and debugged in order to
              improve the performance of the development environment.
              <param-name>com.ibm.ws.jsf.JSP_UPDATE_CHECK</param-name>
              <param-value>true</param-value>
              </context-param>
              <context-param>

              Load JSF runtime when the application server starts up. If this parameter is set to false or removed,
              JSF runtime will be loaded and initialized when the first JSF request is processed.
              This may disable custom JSF extensions, such as factories defined in the project.
              <param-name>com.ibm.ws.jsf.LOAD_FACES_CONFIG_AT_STARTUP</param-name>
              <param-value>true</param-value>
              </context-param>
              <context-param>

              If set to true disables use of MultipartFacesContext, allowing underlying implementations to be used.
              MultipartFacesContext is required when the FileUpload component is used, and can be disabled otherwise.
              <param-name>com.ibm.faces.DISABLE_JWL_MULTIPART_CONTEXT</param-name>
              <param-value>false</param-value>
              </context-param>
              <context-param>

              Value, in milliseconds, to be used for Expires header for resources served by the JavaScript Resource Servlet.
              Default is never (31536000000 milliseconds or 1 year).
              <param-name>com.ibm.faces.RESOURCE_EXPIRE_MS</param-name>
              <param-value>31536000000</param-value>
              </context-param>
              <context-param>

              Defines the strictness of the conversion when converting from a string to a date.
              The higher the value, the more exactly the value must conform to the format.
              If 0 (liberal), all 'literals' are ignored while parsing a value, mis-ordered components will be rearranged,
              any missing component is supplied using the current datetime, misspellings and incomplete spellings are allowed
              (to the extent that they can be evaluated), 'E' and other non-unique components are ignored.
              If 1 (strict), all 'literals' are ignored while parsing a value, any missing component is supplied using the current
              datetime, misspellings and incomplete spellings are allowed (to the extent that they can be evaluated),
              'E' and other non-unique components are ignored. For example if the pattern is MMMM dd, yyyy a user can enter 'Feb/02/04'
              and it will be parsed as February 02, 2004.
              If 2 (very strict), an exact match is required except long month names can be 'shortened' to the minimum number of unique
              characters and 'E' and other non-unique components are ignored. Literals must match exactly.
              Default is 1.
              <param-name>com.ibm.faces.DATETIME_ASSIST_STRICTNESS</param-name>
              <param-value>1</param-value>
              </context-param>
              <context-param>

              Defines the strictness of the conversion when converting from a string to a number.
              The higher the value, the more exactly the value must conform to the pattern.
              For numbers, currently strictness levels of 0 and 1 are equivalent. If the strictness is 2,
              if number is signed, the sign must be provided (otherwise it's assumed positive).
              Default is 1.
              <param-name>com.ibm.faces.NUMBER_ASSIST_STRICTNESS</param-name>
              <param-value>1</param-value>
              </context-param>
              <context-param>

              Defines the path for resources such as JavaScript libraries and images.
              The value can be either:
              1. An empty string. Context path of the current application will be used.
              2. A path string. Example: /project13. A number. Specifies the number of nodes to use from the context path starting from the left.
              Example: With a value of 1 if the context path is /screen/faces/SSID110267549/RID1102676
              the path will be evaluated as /screen
              Default is an empty string.
              <param-name>com.ibm.faces.USE_UNENCODED_CONTEXT_PATH</param-name>
              <param-value></param-value>
              </context-param>
              <context-param>

              Sets a custom url-pattern for the JavaScript Resource servlet.
              Should match servlet mapping setting for the JavaScript Resource servlet. If the default default mapping
              value '/.ibmjsfres/*' is modified, this context-param should also be modified.

              <param-name>com.ibm.faces.JS_RESOURCE_SERVLET_URL_PATTERN</param-name>
              <param-value>/ibmjsfres/*</param-value>
              </context-param>
              <context-param>

              If set to true, forces JavaScript Resource Servlet to cache all resources on the server.
              This can be useful when client-side caching is turned off.
              <param-name>com.ibm.faces.JS_RESOURCE_SERVLET_CACHE</param-name>
              <param-value>false</param-value>
              </context-param>
              <context-param>

              Sets a custom charset mapping properties file similar to converter.properties in WAS.
              <param-name>com.ibm.faces.ENCODING_MAPPING</param-name>
              <param-value>converter.properties</param-value>
              </context-param>
              <context-param>

              Number of Views to be stored in the session when Enhanced State Saving is being used.
              Default is 15.
              <param-name>com.ibm.faces.ENHANCED_SERVER_STATE_SAVING_SESSION_STORED_VIEWS</param-name>
              <param-value>15</param-value>
              </context-param>
              <context-param>

              If set to true, the entire JavaScript library, containing code for all components, will be included
              in the generated pages as one file. If set to false or removed, multiple smaller JavaScript files will be
              included, depending on the components used on the page.Default is false.
              <param-name>com.ibm.faces.USE_HXCLIENT_FULL</param-name>
              <param-value>false</param-value>
              </context-param>
              <context-param>
              <param-name>org.ajax4jsf.SKIN</param-name>
              <param-value>classic</param-value>
              </context-param>

              <display-name>Ajax4jsf Filter</display-name>
              <filter-name>ajax4jsf</filter-name>
              <filter-class>org.ajax4jsf.Filter</filter-class>

              <filter-mapping>
              <filter-name>ajax4jsf</filter-name>
              <servlet-name>Faces Servlet</servlet-name>
              REQUEST
              FORWARD
              INCLUDE
              </filter-mapping>

              <listener-class>com.sun.faces.config.ConfigureListener</listener-class>


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


              <servlet-name>JavaScript Resource Servlet</servlet-name>
              <servlet-class>
              com.ibm.faces.webapp.JSResourceServlet</servlet-class>
              <load-on-startup>-1</load-on-startup>

              <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>*.faces</url-pattern>
              </servlet-mapping>
              <servlet-mapping>
              <servlet-name>JavaScript Resource Servlet</servlet-name>
              <url-pattern>/ibmjsfres/*</url-pattern>
              </servlet-mapping>
              <welcome-file-list>
              <welcome-file>index.html</welcome-file>
              <welcome-file>index.htm</welcome-file>
              <welcome-file>index.jsp</welcome-file>
              <welcome-file>default.html</welcome-file>
              <welcome-file>default.htm</welcome-file>
              <welcome-file>default.jsp</welcome-file>
              </welcome-file-list>
              </web-app>

              • 4. Re: RichFaces and WebSphere 6.1 Skins not working(?)

                do you try the richfaces 3.0.0 or one of the latest 3.0.1 snapshot (the same question about ajax4jsf)?

                I see, the IBM implementation of JSF is used. What the specification it supported.

                • 5. Re: RichFaces and WebSphere 6.1 Skins not working(?)
                  tandonam

                  I was able to solve the problem. The facs.config had following entries to use the IBM AJAX widgets that come bundledwith Rational Application Developer 7.0. RAD automatically adds these entries when you create a new JSF project


                  <faces-context-factory>
                  com.ibm.faces.context.AjaxFacesContextFactory
                  </faces-context-factory>
                  <render-kit-factory>
                  com.ibm.faces.renderkit.AjaxRenderKitFactory
                  </render-kit-factory>
                  </factory

                  Oh, by the way the IBM implementation for WAS 6.1 is based on the JSF 1.1 specification.

                  • 6. Re: RichFaces and WebSphere 6.1 Skins not working(?)
                    rohitram

                    Hi ,

                     

                    I also have the same problem I am using RAD 7.0 and the above AjaxRenderKitFactory is automatically included .If I remove that entry then the rich tabs are displaying.But In my project they already using  AjaxRenderKitFactory .I don't want to remove that entry .How should I proceed now?

                    Any help appreciated.