heroku - Play Framework 重定向错误

标签 heroku playframework routes playframework-1.x

在本地(在 Windows 上)开发我的测试应用时,我的应用运行良好,没有任何问题。

在部署到 heroku(使用 git)并调用特定的 GET 之后,我收到了一个错误。花了很多时间尝试调试问题 - 无法在本地重现,我找到了导致它的区域(通过注释/取消注释代码区域)

这是在 heroku 上不起作用的代码:

public static  void  compose(){
        compose("");
}

public static  void  compose(String content){
        render(content);
}

将上面的内容更改为:

 public static  void  compose(){
        String content = "";
        renderTemplate("Application/compose.html",content);
    }
    public static  void  compose(String content){
        renderTemplate("Application/compose.html",content);
    }

该应用程序在 heroku 上运行良好

这是异常(从第一个代码段生成的异常)

Internal Server Error (500) for request GET /compose
2012-03-03T10:37:14+00:00 app[web.1]: @69hmkdf00
2012-03-03T10:37:14+00:00 app[web.1]: 
2012-03-03T10:37:14+00:00 app[web.1]: Oops: UnexpectedException
2012-03-03T10:37:14+00:00 app[web.1]: An unexpected error occured caused by exception UnexpectedException: Unexpected Error
2012-03-03T10:37:14+00:00 app[web.1]: play.exceptions.UnexpectedException: Unexpected Error
2012-03-03T10:37:14+00:00 app[web.1]: 
2012-03-03T10:37:14+00:00 app[web.1]:   at play.vfs.VirtualFile.contentAsString(VirtualFile.java:180)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.templates.TemplateLoader.load(TemplateLoader.java:69)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.templates.TemplateLoader.load(TemplateLoader.java:172)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.Controller.renderTemplate(Controller.java:640)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.Controller.render(Controller.java:695)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.Controller.renderTemplate(Controller.java:659)
2012-03-03T10:37:14+00:00 app[web.1]:   at controllers.Application.compose(Application.java:92)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
2012-03-03T10:37:14+00:00 app[web.1]:   at Invocation.HTTP Request(Play!)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.vfs.VirtualFile.inputstream(VirtualFile.java:111)
2012-03-03T10:37:14+00:00 app[web.1]:   at play.vfs.VirtualFile.contentAsString(VirtualFile.java:178)
2012-03-03T10:37:14+00:00 app[web.1]: Caused by: play.exceptions.UnexpectedException: Unexpected Error
2012-03-03T10:37:14+00:00 app[web.1]:   ... 12 more
2012-03-03T10:37:14+00:00 app[web.1]: Caused by: java.io.FileNotFoundException: /app/app/views (Is a directory)
2012-03-03T10:37:14+00:00 app[web.1]:   at java.io.FileInputStream.<init>(FileInputStream.java:137)
2012-03-03T10:37:14+00:00 app[web.1]:   at java.io.FileInputStream.open(Native Method)
2012-03-03T10:37:14+00:00 app[web.1]:   ... 13 more
2012-03-03T10:37:14+00:00 app[web.1]:   at play.vfs.VirtualFile.inputstream(VirtualFile.java:109)

路由文件相关行

* /compose Application.compose

我的问题是

  • 我做错了什么(以及为什么我做的更改修复了它)?
  • 为什么它不能在本地复制?

最佳答案

上面的代码应该可以正常工作,如果你改变它;

public static  void  compose(){
        String a = "";
        compose(a);
}

public static  void  compose(String content){
        render(content);
}

因为它需要在渲染 HTML 之前为空字符串保留一些内存。

关于heroku - Play Framework 重定向错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9546399/

相关文章:

constraints - 玩! - 最大约束不起作用

scala - RedisClient失败策略

ruby-on-rails - 我怎样才能获得一个 rails 路线来保留扩展名作为 id 的一部分?

ruby-on-rails - rails 上的 ruby 。 Unicode 路由

python - 使用 Django 创建网站,但图像在部署到 heroku 时未显示,但在 localhost 中显示

ruby-on-rails - Heroku NoMethoderror, remember_token=

playframework - Play Framework WS 主机名验证证书问题

ruby-on-rails - Assets 文件夹中没有路线与 [GET] 文件匹配

java - Play2Torial + Play 2.0.3 + Heroku + Postgresql -- 无法构建推送

javascript - Heroku + Rails 错误 : "Entering the V8 API without proper locking in place"