在GAE中使用SiteMesh

 

在我的GAE项目中使用SiteMesh时遇到了两个问题,现将解决方法整理如下:

一、     NoClassDefFoundError异常

GAE中直接使用SiteMesh会抛如下异常:

Error for /

java.lang.NoClassDefFoundError: javax.naming.InitialContext is a restricted class. Please see the Google App Engine developer's guide for more details.

at com.google.apphosting.runtime.security.shared.stub.javax.naming.InitialContext.<clinit>(InitialContext.java)

at com.opensymphony.module.sitemesh.Factory.getEnvEntry(Factory.java:91)

        ……

针对这个问题,我在网上找到了三个办法:

1、                    修改com.opensymphony.module.sitemesh.Factory. getEnvEntry()方法,将catch(Exception e)改成catch(Trowable e)即可。

2、                    同样修改上面的方法,直接返回缺省值

3、                    下载最新的2.4.2版本,地址是:https://sitemesh.dev.java.net/servlets/ProjectDocumentList?folderID=11231&expandFolder=11231&folderID=11231

建议选择第一种或第三种方法解决。

二、     Excludes无效

decorators.xml配置的excludes标签无效,里面的页面仍然被装饰了。在网上搜到一个小技巧解决之,如下:

    <decorator name="none">

        <pattern>/excludes/*</pattern>

        <pattern>/excludes.jsp</pattern>

                </decorator>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值