采用jsf/myfaces/facelets在tomcat5下可以运行的程序部署到weblogic81sp6下居然不能正常运行,可以参考下列步骤来操作:
确认你的 WEB-INF/lib/ 下有 jsp-api.jar,servlet-api.jar( 在 tomcat5/common/lib/ 下有 )
原文出处:
http://wiki.apache.org/myfaces/Installation_and_Configuration
BEA WebLogic 8.1
Add jsp-2.0.jar and servlet-api.jar (can be found in Tomcat 5.5.x share/lib) to classpath of server startup script (startWebLogic.sh/cmd) of WebLogic or include them in your war WEB-INF/lib
servlet-api.jar is required if your server has no internet connection. The reason is when MyFaces lib parse web.xml file, it assumes that web-app_2_3.dtd is accessible locally as javax/servlet/web-app_2_3.dtd or directly on http://java.sun.com/dtd/web-app_2_3.dtd. WebLogic has not javax/servlet/web-app_2_3.dtd in it's lib
facelets是在jdk1.5下编译的,在jdk1.4下采用facelets开发,必须先将el-ri.jar,el-api.jar和jsf-facelets.jar用Retrotranslator在jdk1.4下转换过来
转换方法:
1.下载所需的包
facelets: facelets- 1.1.11 .zip
下载地址:https://facelets.dev.java.net/files/documents/3448/36491/facelets- 1.1.11 .zip
retrotranslator: Retrotranslator- 1.2.1 -bin.zip
访问地址:http://retrotranslator.sourceforge.net/
2.新建一个目录比如:F:/changefacelets
3.解压缩
将facelets- 1.1.11 .zip解压缩取出
el-ri.jar,el-api.jar,jsf-facelets.jar放入新建目录F:/changefacelets/change下面
将Retrotranslator- 1.2.1 -bin.zip解压缩取出
retrotranslator-transformer- 1.2.1 .jar,
backport-util-concurrent-3.0.jar,
retrotranslator-runtime- 1.2.1 .jar放入F:/changefacelets/change下面
4.将jsf-facelets.jar拷贝到新建路进f:/changefacelets/unzip下,
从命令行进入F:/changefacelets/unzip(cd f:/changefacelets/unzip)对将jsf-facelets.jar解压缩
jar xvf jsf-facelets.jar
取出除com包和jsf-facelets.jar以外的所有文件和包放到一个新建的目录下如f:/changefacelets/lib
5.从命令行进入f:/changefacelets/change
6.分别对每个jar文件执行以下命令
对el-ri.jar :
java -jar retrotranslator-transformer- 1.2.1 .jar -srcjar el-ri.jar
对el-api.jar :
java -jar retrotranslator-transformer- 1.2.1 .jar -srcjar el-api.jar
对jsf-facelets.jar :
java -jar retrotranslator-transformer- 1.2.1 .jar -srcjar jsf-facelets.jar
生成新的同名jar文件
7.清空f:/changefacelets/unzip,把新的jsf-facelets.jar拷贝到f:/changefacelets/unzip下按照步骤4的操作取出com包放入f:/other/lib下
8.对f:/changefacelets/lib下的文件打包:
从命令行进入f:/changefacelets/lib下
jar cvf jsf-facelets.jar com/* META-INF/* *.dtd *.ent
生成一个jsf-facelets.jar将这个jar文件和f:/changefacelets/change下的el-api.jar,backport-util-concurrent-3.0.jar,retrotranslator-runtime-1.2.1.jar和el-ri.jar取出放入你的web项目的WEB-INF/lib下
这样在jdk1.4下就可以使用facelets了
注意:myfaces的jar版本*-1.1.5.jar