我有play应用程序,以便在Debian上轻松部署,有哪些方法可以使用标准的init.d脚本从代码中创建守护进程,这里的主要问题是如何优雅地停止应用程序?我如何将代码编译为一个fatjar,与多个文件和目录(部署Play应用的标准方式)相比,易于维护1个单个文件。 最佳答案 假设您正在使用“playdist”包,您可以围绕它创建一个简单的init.d脚本。像这样的东西:/etc/init.d/play.myplayapp#!/bin/sh###BEGININITINFO#Provides:play#Required-Start:$a
我们有一个新的Play2.0项目,我们计划在添加一些复杂的第3方集成代码时引入DI。Play2.0有一个Guice插件,但看起来它在2.1时会过时,我有预感2.1已经不远了。https://github.com/typesafehub/play-plugins/tree/master/guiceGuice是Play2.0/2.1的安全选择还是我们应该考虑其他选择? 最佳答案 我会选择2.1版本,以及来自全局对象的新Controller实例。这是来自doc的Guice示例:importplay.GlobalSettings;impor
我是play框架的新手,想编写自己的twitterbootstrap字段构造函数,其中包括bootstrap的用法icon-classes.为了使这个动态化,我需要通过额外的参数传递图标类。这可能吗?我尝试了以下和其他一些变体:index.scala.html@(loginForm:Form[Login])@importhelper._@implicitFieldConstructor=@{FieldConstructor(twitterBootstrapInput.render)}@main("Akquise"){@form(routes.Application.login(),ar
我使用IntelliJIDEA12,Play2.2.0,我安装了Scala插件,安装了Play2.0支持插件。我通过终端创建了javaplay应用程序(playnew)。正如您在这些图片中看到的那样,我总是收到此错误:“无法解析方法ok()”或“无法解析符号”http://sluchatka.kvalitne.cz/pics/1.pnghttp://sluchatka.kvalitne.cz/pics/2.png我整天在网上搜索这个问题,但没有找到解决方案。你能帮帮我吗? 最佳答案 第一个问题(无法解析对模板的引用)是因为您的模板目
我对PlayFramework比较陌生。我正在处理的当前项目有大量的Promise由服务层组件一直返回到Controller。我想知道这是否是最佳做法。在我看来,使用Promise确实会使源代码变得困惑。而且我不得不过于频繁地使用final修饰符,只是为了让我需要为这些Promise创建的匿名Function可以访问局部变量、参数和类成员。它甚至会影响我创建单元测试用例的方式。老实说,这感觉很丑陋,而且代码行太多了。我什至不确定我们是否做对了,我觉得我们过度使用了Promise。顺便说一句,我正在使用Java。所以,我什么时候应该使用Promise,什么时候应该返回一个Promise,
我正在尝试为Play2Controller创建一个功能测试,它将多部分表单数据作为输入。目前FakeRequest中没有支持多部分表单POST的方法。还有什么其他方法可以测试这个Controller?Mapmap=newHashMap();map.put("param1","test-1");map.put("param2","test-2");map.put("file",file)Resultresult=routeAndCall(fakeRequest(POST,"/register").withFormUrlEncodedBody(map));//NOSUCHMETHOD编辑:
您好,我想从Web服务读取PNG,然后使用PNG响应客户端。(想想像图像代理之类的东西)。我在WS类中使用Java和PlayFramework2.0。目前我有:publicstaticResultgetimage(){WSRequestHolderrequestHolder=WS.url("http://someimageserver/myimage.png");PromisegetImageResult=requestHolder.get();//HowdoIcreateanplay.mvc.ResultfromthissoIcansentitbacktothecallee?}非常感
当我使用https端口运行PlayFramework时,应用程序在两个端口上启动-默认(9000)和https(443)。如何禁用默认的9000端口并仅在https端口上运行Play应用程序?我通过以下命令运行应用程序:play-Dhttps.port=443-Dhttps.keyStore=/path/to/keystore-Dhttps.keyStorePassword=passwordstart我得到了一些日志:[info]play-Applicationstarted(Prod)[info]play-ListeningforHTTPon/0:0:0:0:0:0:0:0:9000
我正在学习Play2.0(使用JavaAPI)并希望有一个double/float参数(用于位置坐标),比如http://myfooapp.com/events/find?latitude=25.123456&longitude=60.251253。我可以通过获取字符串形式的参数并在Controller等处解析它们来做到这一点,但是我可以在这里使用自动绑定(bind)吗?现在,我首先尝试简单地使用一个double值:GET/events/foocontrollers.Application.foo(doublevalue:Double)与publicstaticResultfoo(Do
Play!frameworkgeneratesgettersandsetters对于模型类的每个公共(public)字段在运行时。publicclassProduct{publicStringname;publicIntegerprice;}将转化为publicclassProduct{publicStringname;publicIntegerprice;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicIntegergetPrice(){returnprice;