Ale*_*jan 7 playframework playframework-2.1
在下面的问题的上下文中,我想了解运行播放开始和播放运行之间的区别.
我的具体用例相当复杂,但我会简化它:
现在,当我play start在这个应用程序上执行时,Tomcat已启动并运行,X很高兴,并且生活还在继续.
但是,当我这样做时play run,Tomcat无法初始化,并且X坐在那里等待响应,最终超时.
我需要使用的主要原因play run是开发,因为我想通过运行来附加Eclipse调试器play debug run.
我意识到这是一个过于简单化,但我希望从你那里得到的是导致Play运行和Play启动之间的差异,这可能会导致我的应用程序的行为导致这种失败.
现在,我已经尝试在http://www.playframework.com/documentation/2.1.x/ThreadPools之后增加Play的默认线程池中的线程数,但没有运气.
播放输出和日志没有提供有关此问题的有用信息.
我正在使用Play 2.1.1
gou*_*ama 11
play run在开发模式下启动播放应用程序.
这意味着它在播放提示符内(在SBT内,真的)运行,带有一些自定义类加载器魔法,允许自动重新加载类,自动编译模板等.这种运行应用程序的自定义方式可能是阻止Tomcat的开始.
如果没有来自Tomcat的一些日志输出或堆栈跟踪,很难说更多关于Tomcat无法启动的原因.这有点类似于在另一个通过自定义类加载器(如... Tomcat)提供隔离的容器中启动Tomcat.
编辑:我不知道自己的血腥细节,但这一切都发生在播放运行命令和重新加载器中.虽然我不知道2.1.x和2.2.x之间的情况是否发生了变化,但在master中似乎有更多的文档记录.
play start是一种在生产模式下运行应用程序的交互方式.
这意味着它与调用完全相同java -cp [...] YourMainClass,除了它从播放提示符交互运行(需要Ctrl+D分离)而不是在后台运行(因此它不适合自动部署).
但是对于实际生产,您应该使用play dist命令准备一个独立版本,然后按照文档中的描述使用包含的脚本启动它.