Как я могу развернуть 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 счастлив), но ваши шаблоны фактически не подвергаются воздействию.