Details
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.
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.
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.
{ InputStream inputStream = this.getClass().getResourceAsStream("serializedTagToComponentMapFull.ser"); parser = new Parser(inputStream); }public D2DViewHandler() {
try
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).