标签: playframework

如何在Play 2.0中为每个环境设置不同的数据库?

我希望我的Play应用程序使用不同的数据库进行测试,本地和生产(生产是Heroku)环境.

application.conf我有:

db.default.driver=org.postgresql.Driver 

%dev.db.default.url="jdbc:postgresql://localhost/foobar" 
%test.db.default.url="jdbc:postgresql://localhost/foobar-test" 
%prod.db.default.url=${DATABASE_URL} 
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用.当我运行play testplay run所有数据库访问失败时:

 Configuration error [Missing configuration [db.default.url]] (Configuration.scala:258) 
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  • 在一般情况下,我有点困惑的数据库是如何在游戏配置:它看起来像有平原db,db.[DBNAME]db. [DBNAME].url与不同的教程让那些之间不同的选择.某些表达式似乎应该可以正常工作(例如db.default.url = "jdbc:...",在预期对象的位置提供字符串的错误时失败).

  • 我见过其他人认为我创建单独的prod.conf,dev.conftest.conf文件均包括application.conf然后包含特定DB-配置.但在这种情况下,如何指定test从Play控制台运行时要使用的数据库?

  • %env语法是否适用于Play 2?

  • 指定play test要使用的环境的正确方法是什么?

database configuration scala playframework playframework-2.0

22
推荐指数
2
解决办法
1万
查看次数

在Playframework 2.0中发送电子邮件

在Playframework 2.0中,发送电子邮件似乎并不那么简单(请参阅Play 1.x中有关在Play Framework中使用sendmail作为SMTP服务器的评论).没有开箱即用的邮件程序功能......所以,我该如何发送电子邮件?

playframework playframework-2.0

22
推荐指数
2
解决办法
2万
查看次数

在运行时替换某些方法的内容

我想在运行时替换一些方法的内容.

我知道我可以使用javassist但它不起作用,因为我想要增强的类已经被系统classLoader加载.

我该怎么做,在运行时替换方法的内容?我应该尝试卸载课程吗?我怎样才能做到这一点 ?我看到它是可能的,但我无法弄清楚如何做到这一点.

如果可能的话,我想避免使用外部库,我想自己编写代码.

更多信息: - 我想要增强的类包含在一个框架中(在一个jar文件中) - 我的代码实际上是这个框架的一个插件 - 我的插件运行的框架有自己的classLoader,但是这个classLoader没有加载自己的类(它将它们委托给系统类加载器) - 我正在使用的框架是Play.

谢谢您的帮助 !

java runtime classloader javassist playframework

22
推荐指数
2
解决办法
7256
查看次数

如何将原始html传递给Play框架视图?

我正在尝试将一个简单的URL传递给播放框架应用程序中的视图,但是当作为字符串传递时,&URL中的更改&会导致URL无效.

如果我将参数更改为Html,即@(url: Srting)to @(url: Html),那么当我尝试将url作为字符串传递给view.render()方法时,我会收到错误.

如何将网址转换为Html并将其传递给它?

java playframework playframework-2.0

22
推荐指数
2
解决办法
1万
查看次数

在Scala中将选项[x]"转换"为x

我使用scala(2.1)进行播放,我需要将"Option [Long]"值转换为"Long".

我知道如何做相反的事情,我的意思是:

  def toOption[Long](value: Long): Option[Long] = if (value == null) None else Some(value)
Run Code Online (Sandbox Code Playgroud)

但就我而言,我必须将"Option [Long]"的值作为一个类型传递给一个采用"Long"的方法.请帮忙.

casting scala options type-conversion playframework

22
推荐指数
3
解决办法
3万
查看次数

播放框架2.2.1 HTTPs在连接尝试时失败

我试图在开发模式下在HTTPs上运行play framework 2.2.1应用程序.我使用以下命令:

Development/Play/ssltest$ JAVA_OPTS=-Dhttps.port=9443 play run
Run Code Online (Sandbox Code Playgroud)

我得到了以下,这似乎没问题

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
[info] play - Listening for HTTPS on port /0:0:0:0:0:0:0:0:9443

(Server started, use Ctrl+D to stop and go back to the console...)    
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过HTTPS连接到应用程序时:

"https://localhost:9443"
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃,我进入以下一堆例外:

[error] play - Error loading fake key store
java.security.cert.CertificateException: Subject class type invalid.
at sun.security.x509.X509CertInfo.setSubject(X509CertInfo.java:888) ~[na:1.8.0-ea]
at sun.security.x509.X509CertInfo.set(X509CertInfo.java:415) ~[na:1.8.0-ea]
at play.core.server.netty.FakeKeyStore$.createSelfSignedCertificate(FakeKeyStore.scala:71) ~[play_2.10.jar:2.2.1]
at play.core.server.netty.FakeKeyStore$.keyManagerFactory(FakeKeyStore.scala:34) ~[play_2.10.jar:2.2.1]
at play.core.server.NettyServer$PlayPipelineFactory$$anonfun$sslContext$2.apply(NettyServer.scala:98) [play_2.10.jar:2.2.1]
at play.core.server.NettyServer$PlayPipelineFactory$$anonfun$sslContext$2.apply(NettyServer.scala:94) …
Run Code Online (Sandbox Code Playgroud)

java https playframework

22
推荐指数
2
解决办法
2万
查看次数

Typesafe Activator中的sbt在哪里?

我正在尝试使用Typesafe Activator 1.2.3 的离线安装Play Framework 2.3.2 .每一篇文档都告诉我,它正在使用sbt来构建和运行项目.

这个sbt位于/安装在哪里?它是否在包含Activator安装的解压缩文件夹中的某个位置?

如何从命令行启动sbt?它不是在PATH运行中locate sbt找不到任何东西.

sbt playframework typesafe-activator

22
推荐指数
1
解决办法
5083
查看次数

Eclipse框架中生成的Scala项目错误

我想使用Eclipse作为使用Play Framework的Scala Web应用程序的IDE .我下载了Eclipse 3.6.2.然后我为Eclipse安装了Scala IDE 2.0(beta).我下载了Play Framework 1.2.2RC1并安装了Scala模块play install scala-0.9.1并使用生成了一个新站点play new mysite.然后我用它做了一遍,play eclipsify mysite并在Eclipse中导入了项目.

但是现在我在Eclipse中遇到了很多错误.这是我可以解决的任何问题,还是不同的项目不兼容?

这是生成的代码,其中包含Eclipse中的错误(但它在我运行应用程序时有效).

package controllers

import play._
import play.mvc._

object Application extends Controller {

  import views.Application._

    def index = {
        html.index("Your Scala application is ready to go home!")
    } 
}
Run Code Online (Sandbox Code Playgroud)

这就是它在Eclipse中的样子:Eclipse中的Scala Play应用程序

eclipse scala playframework scala-ide

21
推荐指数
2
解决办法
5219
查看次数

举起,玩!或BlueEyes(带有一堆Javascript框架)

我发现自己有点难题.我正在构建一个新的,现代的,基于Web的应用程序,我不仅需要选择一种技术,我必须选择一种架构.我认为现在可以说这是一个艰难的选择,因为我们有比5年前更多的选择.

首先,我已经决定Scala将成为服务器端语言.我有我的理由,这不是Scala与XYZ的帖子 - 已经做出了选择.我也已经完成了这样一个事实,即我们在网络上,在云端,所以我甚至都不会试图摆脱Javascript.也许我会使用CoffeeScript,但我将编写浏览器托管的代码.

现在,假设Scala,大多数人可能会跳到Play!提升.可能会玩!鉴于它得到了Typesafe支持,但我认为我还有另一个需要首先回答的更重要的问题.什么是建筑?如果我想要一个非常富有的客户端,我真的需要的不仅仅是一个简单的无状态服务层,因为我们还有大量的Javascript吗?我不确定它会是一个单页的webapp,但像BlueEyes这样的东西可能是正确的选择吗?举起并玩!更重要的是他们承担更多的责任.他们生成HTML,对于这些框架,浏览器非常愚蠢.路由,验证,Ajax和Comet支持等都是服务器端的问题.由于浏览器今天功能更强大,因此通常通过从服务器生成和注入Javascript来实现丰富的交互式功能.

我的问题归结为这个.我是否选择传统的电梯/游戏!服务器承担客户端和服务器责任的框架,还是使用富客户端+ REST风格的服务层,客户端在应用程序中扮演更重要的角色?客户端处理路由,验证,绑定等的架构.我看到像KnockOut.js,Sammy.js,Sproutcore,Backbone.js这样的框架......我不打算将它们全部列出但只需要从客户端的角度来看,他们都采用了一些这些框架功能.

如果我选择Play!,我会放弃一些丰富的UI吗?那些我想为集成/混搭/移动目的提供服务API的情况呢?玩怎么玩!在这帮我?显然BlueEyes在这里发挥得很好.我想我无论如何都需要一个服务层.

如果我选择BlueEyes,我的客户端代码是什么样的?我需要有多少基于Javascript的框架才能满足我的需求?我仍然希望在我的服务层中使用大部分业务逻辑,但路由,绑定......所有UI内容都是客户关注的问题.

我不确定答案是对还是错,但我认为这个社区可能会指出我正确的方向.

我也把它发布到我的博客http://www.andyczerwonka.com/picking-a-web-technology-isnt-as-easy-as-it-u-45228

javascript architecture scala lift playframework

21
推荐指数
2
解决办法
5999
查看次数

应该如何在Play 2.3的build.sbt中定义routesImport?

我正在将项目从Play 2.2升级到2.3.0.

以下routesImport一行build.sbt停止解析和Play说val not found error:

lazy val root = (project in file(".")).enablePlugins(PlayScala)

routesImport += "binders._"
Run Code Online (Sandbox Code Playgroud)

我找不到2.3.x的任何文档来解释如何迁移它.请指教.

scala sbt playframework playframework-2.3

21
推荐指数
1
解决办法
2865
查看次数