play 部署问题 play.exceptions.TemplateExecutionException: No signature of method: java.lang.String.f

前提: 使用 play 局部更新包生成器V3.0 (http://download.csdn.net/detail/fasttime/9453996)  打包 html,部署至线上后可能出现以下问题。


 formatMobile() 是 play.templates.JavaExtensions 自定义的子类中的方法,但 play 本身并不会去找 JavaExtensions 自定义的子类的方法,所以导致了这个错误

play.exceptions.TemplateExecutionException: No signature of method: java.lang.String.formatMobile() is applicable for argument types: () values: []
     at play.templates.BaseTemplate.throwException(BaseTemplate.java:86)
     at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:272)
     at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:282)
     at play.templates.Template.render(Template.java:26)
     at play.templates.GroovyTemplate.render(GroovyTemplate.java:202)
     at play.mvc.results.RenderTemplate.<init>(RenderTemplate.java:24)
     at play.mvc.Controller.renderTemplate(Controller.java:662)
     at play.mvc.Controller.renderTemplate(Controller.java:642)
     at play.mvc.Controller.render(Controller.java:699)
     at controllers.BaseController.logIllegalState(BaseController.java:288)
     at play.mvc.ActionInvoker.invoke(ActionInvoker.java:510)
     at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484)
     at play.mvc.ActionInvoker.invoke(ActionInvoker.java:198)


解决方案:

   将 JavaExtensions 自定义的子类的方法复制至 JavaExtensions 类中,替换 play-1.2.7.jar 中的 class  即可恢复正常。


注:

  http://download.csdn.net/detail/fasttime/9453996 中的3.0 有缺陷,在类有内部类的情况下,打包会出现问题(内部类没打上去) ,V3.1已修复,有需要的请单独与我联系 。


20160312备注:

     之前产生问题的原因是由于在定制 paly 包时,JavaExtensions 的子类没有被 ClassLoader 正常加载。采用最新的包(play-1.2.7.jar 定制版 http://download.csdn.net/detail/fasttime/9459444)或 重新参考文章(play1.2.7局部编译,局部打包完整解决方案 http://blog.csdn.net/fasttime/article/details/50813286)  将不会出现此类问题。

最后感谢贺军的协助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值