Как я могу развернуть Play! рамочное приложение автономно (без войны) и не включать источник в папку приложения?

Я использую play-1.2.3.

Я выполнил следующие шаги:

  • устанавливается в production.conf
  • play precompile myApp
  • удалить каталог приложений из myApp
  • play run myApp -Dprecompiled = true

Первый запрос myApp приводит к исключению TemplateNotFoundException. Правильны ли шаги?

Я не могу развернуть источник из-за ограничений компании. Я мог бы изучить развертывание с помощью Jetty, если выше не будет работать.

Update
Stacktrace:

12:27:53,932 INFO  ~ Starting C:\play-1.2.3\samples-and-tests\chat
12:27:54,008 INFO  ~ Application is precompiled
12:27:54,553 INFO  ~ Application 'chat' is now started !
12:27:54,647 INFO  ~ Listening for HTTP on port 9000 ...
12:28:02,466 ERROR ~

@686d104bp
Internal Server Error (500) for request GET /

Execution exception
NullPointerException occured : null

play.exceptions.JavaExecutionException
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:229)
    at Invocation.HTTP Request(Play!)
Caused by: java.lang.NullPointerException
    at play.exceptions.TemplateNotFoundException.<init>(TemplateNotFoundException.java:25)
    at play.mvc.Controller.renderTemplate(Controller.java:666)
    at play.mvc.Controller.renderTemplate(Controller.java:639)
    at play.mvc.Controller.render(Controller.java:694)
    at controllers.Application.index(Application.java:14)
    at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:546)

    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:500)
    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:476)

    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:471)

    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)
    ... 1 more

Ответ 1

Об этом сообщается на маяке в качестве случая № 806 https://play.lighthouseapp.com/projects/57987-play-framework/tickets/806. Я провел некоторое расследование и обнаружил, что в 1.2.3 невозможно запустить в предварительно скомпилированном режиме без наличия источника шаблона. Я сделал более подробные комментарии по поводу проблемы на примере # 806.

Я также воспользовался исправлением и нажал на свою вилку игры на git @github.com: WiredThing/play.git, и я опубликовал запрос на игру для playframework, если они захотят вытащить его.

Но для повторной итерации в выпуске play play можно удалить источник java в прекомпилированном режиме, но источники шаблонов должны присутствовать, даже если он загружает байт-код из предварительно скомпилированных файлов.

Ответ 2

Это немного взломанный, и я не проверял его за пределами быстрого теста с одним шаблоном, но одно обходное решение, как представляется, удаляет содержимое ваших шаблонов, чтобы файлы по-прежнему технически существовали (так что Play счастлив), но ваши шаблоны фактически не подвергаются воздействию.