ICEfaces
  1. ICEfaces
  2. ICE-2356

Allow facelet applications using jsf1.2 implementation to deploy to J2EE AS like Tomcat 5.5

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7
    • Fix Version/s: 1.7.2
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      jsf1.2 impl

      Description

      jsf1.2 has dependency on servlet-api version 2.5. (J5EE) whereas the J2EE AS (like Tomcat 5.5) use the 2.4 version of the servlet-api. In order to deploy the jsf1.2 impl of icefaces-facelet applications, need to sever dependency on parsing the jsp tags. The jsf1.2 impl tries to load classes from the javax.servlet.jsp package which does not exist in the 2.4 version of the jar.

      Since the D2DViewHandler is loaded automatically with ICEfaces (before the facelet view handler which is specified in faces-config.xml), the classes specified by jsf1.2 impl are not found and need to catch this exception gracefully.

      Also have to look at possible expression language libraries problems.

        Activity

        Hide
        Judy Guglielmin added a comment -

        put general catch statement in constructor. The D2DViewHandler is loaded when icefaces loads (not dependent on whether the facelets or jsp version of the app is being deployed). For this reason, need to catch the errors of classNotFoundException when the jsp tags are not found for jsf1.2 impl.
        public D2DViewHandler() {
        try

        { InputStream inputStream = this.getClass().getResourceAsStream("serializedTagToComponentMapFull.ser"); parser = new Parser(inputStream); }

        catch (IOException e)

        { throw new RuntimeException(e); }

        catch (Throwable te)

        { log.info("Parsing of jsp tags unavailable->can only use facelets & jsf1.2 impl on J2EE AS as missing class="+te); }

        }
        Now can deploy jsf1.2 impl apps on Tomcat5.5 or jboss4.0.5, etc. (as long as facelets is used). Make sure to use same dependencies for each server and just substitute the jsf jars (replace 1.1 impl with those of 1.2 impl).

        Show
        Judy Guglielmin added a comment - put general catch statement in constructor. The D2DViewHandler is loaded when icefaces loads (not dependent on whether the facelets or jsp version of the app is being deployed). For this reason, need to catch the errors of classNotFoundException when the jsp tags are not found for jsf1.2 impl. public D2DViewHandler() { try { InputStream inputStream = this.getClass().getResourceAsStream("serializedTagToComponentMapFull.ser"); parser = new Parser(inputStream); } catch (IOException e) { throw new RuntimeException(e); } catch (Throwable te) { log.info("Parsing of jsp tags unavailable->can only use facelets & jsf1.2 impl on J2EE AS as missing class="+te); } } Now can deploy jsf1.2 impl apps on Tomcat5.5 or jboss4.0.5, etc. (as long as facelets is used). Make sure to use same dependencies for each server and just substitute the jsf jars (replace 1.1 impl with those of 1.2 impl).
        Hide
        Judy Guglielmin added a comment -

        for jboss-4.0.5.GA use Tomcat 5.5 target, add el-api.jar for component-showcase & substitute jsf jars for 1.2 impl.

        Show
        Judy Guglielmin added a comment - for jboss-4.0.5.GA use Tomcat 5.5 target, add el-api.jar for component-showcase & substitute jsf jars for 1.2 impl.

          People

          • Assignee:
            Unassigned
            Reporter:
            Judy Guglielmin
          • Votes:
            2 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: