Hi all,
I'm having an issue with jspc, but a bit of background first;
I've been asked to port an application from WebSphere 6.0 to GlassFish 2.1.1. The application uses ibm's implementation of jsf and includes their html extension tags. Now the only way i could get it to work correctly (without lots of rewriting) was to include the ibm jsf-impl jsf-api and jsf-ibm jars (together with a few others) in the web-inf/lib of the war, i then configured glassfish to use these libs before it's own. All of this worked well and runs great on glassfish, although the first load is slow so i thought i'd precompile.
Now when i come to try to precompile the JSP files I get stuck.
jspc runs without any errors but after deployment i get the following error:
[#|2009-12-01T15:58:02.564+0000|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=24;_ThreadName=httpSSLWorkerThread-8080-2;_RequestID=deb66471-c0d8-49d5-8007-b6985b304d59;|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NoSuchMethodError: com.sun.faces.taglib.jsf_core.ViewTag.setJspId(Ljava/lang/String;)V
This is because the jspc command has used the glassfish libraries to compile the jsp's and when deployed, it uses the libraries included in the web app to run it (i'm assuming).
So i thought i could get round this by modifying the jspc.bat file included in the glassfish release to use my classes instead, basically by inputting the paths to my libs before the glassfish libs (i cvhanged the -cp parameter in the bat file)
But now i get an error when i run the jspc command:
WC6341: According to the TLD, deferred-value is specified for the attribute styleClass of the tag handler com.sun.faces.taglib.html_basic.FormTag, but the argument for the setter method is not a javax.el.ValueExpression
I'm assuming this error is generated because the jspc command is using the tld from jsf 1.2 instead of using the jsf 1.1 tld to validate the files but i can't figure out where it's picking up the html_basic.tld from.
I've tried doing the precompile at deploy time using the admin tool but i get a similar error to the first one:
C:\Sun\AppServer\domains\domain1\generated\jsp\j2ee-apps\vctmEAR-09004-russia-uat\vctm_war\org\apache\jsp\AdditionalCustomerInfo_jsp.java:194: cannot find symbol
symbol : method setJspId(java.lang.String)
location: class com.sun.faces.taglib.jsf_core.ViewTag
_jspx_th_f_view_0.setJspId("id85");
^
Basically, what i'm asking is, does anyone know how to get a jsf 1.1 app to precompile and deploy onto glassfish but using their own defined taglibs?
I hope all this is inderstandable, i know i've skimmed over some of the details but i can expand any of the points if required.
Cheers