我有一个用MyFaces 1.2.8,Facelets 1.1.14构建的JSF应用程序,并通过Eclipse Ganymede中的插件用Tomcat 6构建它。
我刚刚安装了上述库的最新版本,并在构建时安装了该应用程序,服务器启动,立即得到以下信息:
javax.servlet.ServletException: javax.crypto.BadPaddingException: Given final block not properly padded
谷歌搜索这一点使我指向此页面,其结果是使用此功能禁用MyFaces和Facelets的错误处理
<context-param> <param-name>org.apache.myfaces.ERROR_HANDLING</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>facelets.DEVELOPMENT</param-name> <param-value>false</param-value> </context-param> <error-page> <exception-type>javax.servlet.ServletException</exception-type> <location>/error.jsp</location> </error-page>
最重要的是使用此:
org.apache.myfaces.USE_ENCRYPTION
设置为false。我不想这样做,但是没有其他有用的信息。其他人是否知道是否有解决此问题的方法?我只是最近才从mojarra迁移而来,我不想回头。
我们认为会降级MyFaces的工作吗?我要尝试一下。
谢谢IA。
搜寻之后,我个人的建议是停止在这种情况下使用MyFaces,安装正确的Mojarra运行时以支持您正在执行的项目,确保已正确安装了所有jar(我没有),再次检查facelets配置并阅读手册。使用不同的JSF实现是一种解决方法,但它确实有效。