我正在使用Play 2.4.0并且我一直在尝试按照主页中的教程:https: //playframework.com/,这是针对Play 2.3以及解决了有关Ebean ORM更改的几个问题之后版本2.3到2.4,我遇到以下错误:
Compilation error
value at is not a member of controllers.ReverseAssets
Run Code Online (Sandbox Code Playgroud)
我的index.scala.html:
@(message: String)
@main("Welcome to Play") {
<script type='text/javascript' src="@routes.Assets.at("javascripts/index.js")"></script>
<form action="@routes.Application.addPerson()" method="post">
<input type="text" name="name" />
<button>Add Person</button>
</form>
<ul id="persons">
</ul>
}
Run Code Online (Sandbox Code Playgroud)
我的routes档案:
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
# Home page
GET / controllers.Application.index()
POST /person controllers.Application.addPerson()
GET /persons controllers.Application.getPersons()
# Map static resources from the /public …Run Code Online (Sandbox Code Playgroud) 有谁知道播放使用的是哪个Web服务器!框架?
我打算使用Play对小型Intranet应用程序进行原型设计!我想知道我是否应该使用内部使用的默认播放Web服务器或Apache或IIS.
我不预测应用程序运行的几个实例,也不需要负载平衡.
我在使用Scala在Play Framework中向Json对象添加字段时遇到问题:
我有一个包含数据的案例类.例如:
case class ClassA(a:Int,b:Int)
Run Code Online (Sandbox Code Playgroud)
我可以使用Json Writes创建一个Json对象:
val classAObject = ClassA(1,2)
implicit val classAWrites= Json.writes[ClassA]
val jsonObject = Json.toJson(classAObject)
Run Code Online (Sandbox Code Playgroud)
而Json看起来像:
{ a:1, b:2 }
Run Code Online (Sandbox Code Playgroud)
假设我想在Json对象中添加一个额外的'c'字段.结果:
{ a:1, b:2, c:3 }
Run Code Online (Sandbox Code Playgroud)
如何在不创建新案例类或使用Json.obj自己创建Json对象的情况下如何做到这一点?我正在寻找类似的东西:
jsonObject.merge({c:3})
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏!
刚刚开始学习Play框架以满足我的项目需求而我的项目只构建在JDK 1.7上,所以我已经下载了Play 2.3.9版本并通过输入创建了一个示例项目activator new.然后移动到示例项目目录并执行activator run.然后我看到JDk不兼容的异常.我必须在哪里进行更改来处理这个问题?
日志:
[info] Loading project definition from E:\workspace\play\first-app\project
[info] Set current project to first-app (in build file:/E:/workspace/play/first-app/)
java.lang.UnsupportedClassVersionError: com/typesafe/config/ConfigException : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load$1.apply(SbtWeb.scala:535)
at com.typesafe.sbt.web.SbtWeb$$anonfun$com$typesafe$sbt$web$SbtWeb$$load$1.apply(SbtWeb.scala:535)
at scala.Option.fold(Option.scala:157)
at com.typesafe.sbt.web.SbtWeb$.com$typesafe$sbt$web$SbtWeb$$load(SbtWeb.scala:549)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$1$$anonfun$apply$1.apply(SbtWeb.scala:143)
at com.typesafe.sbt.web.SbtWeb$$anonfun$globalSettings$1$$anonfun$apply$1.apply(SbtWeb.scala:143)
at scala.Function1$$anonfun$andThen$1.apply(Function1.scala:55)
at sbt.Project$.setProject(Project.scala:319)
at sbt.BuiltinCommands$.doLoadProject(Main.scala:484)
at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:475) …Run Code Online (Sandbox Code Playgroud) 我试图用jQuery和JSON预先形成一些基本操作.目前在jQuery接受来自我的播放框架应用程序的JSON响应时遇到困难.下面是仍然产生错误的代码的简化版本.
$.ajax({
type: 'POST',
url: "@{FrontEnd.isUsernameAvailable()}",
data: "name=thisnameisavailable",
cache: false,
success: function(data) {
console.log("Success... ");
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error... " + textStatus + " " + errorThrown);
},
dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)
始终触发错误回调.它显示
错误... parsererror jQuery15001997238997904205_1298484897373未被调用
通过Firebug检查返回的JSON显示没有错误,各种JSON lint工具也验证.将dataType更改为"text"会调用成功.但我试图使用isUsernameAvailable调用作为jQuery验证插件的一部分,所以我需要它来返回有效的JSON.
在我的Play 2.0项目中,我已经集成了Bootstrap(因为较少的文件,Play可以在飞行中编译它们)但现在我找到了Boilerplate,我认为使用它也是一个不错的主意.
经过一番谷歌搜索后,我发现了这个:http: //www.quora.com/Is-Bootstrap-a-complement-OR-an-alternative-to-HTML5-Boilerplate-or-viceversa
因此,看起来集成应该是可能的,甚至有两个项目试图这样做.唯一的问题是他们做了完全不同的事情,我不确定哪一个是正确的.
https://gist.github.com/1422879处于当前状态似乎只是忽略styles.css来自Boilerplate的文件.它被重命名为h5bp.css,但我没有看到h5bp.css包含在任何地方.
https://github.com/elgreg/html5-boilerstrap,另一方面利用他们两个,只是分裂styles.css的文件分为两个部分(h5bp_normalize.css及styles.css,bootstrap.css包括它们之间).但Boilerplate和Bootstrap之间没有这种冲突吗?
所以我有点迷茫.在这种情况下,做事的正确方法是什么?
我试图使用IntelliJ与播放框架2.11应用程序.
我安装了Play Framework 2插件和IntelliJ的Scala插件.
我创建了一个Play应用程序.我一直在努力在IntelliJ中编写和运行Specs 2测试.我的运行配置说在运行Specs 2测试时首先运行"make",但是看起来我的测试类看起来不像.继续告诉我它找不到规范.当我查看文件系统时,目标/测试类中没有代码,目录为空.此外,至少与运行Play控制台相比,似乎需要花费很长时间才能进行构建.
我想看看人们如何使用Play with IntelliJ.您是否只使用IntelliJ作为编辑器,并通过Play控制台运行所有内容?
有没有办法可以在IntelliJ中运行应用程序测试(让测试类运行)?
我在运行Play控制台并运行~test-only test = xxx.Spec时从未遇到任何问题.它通常很快.
当我尝试运行我的Specs2测试时,这是我在IntelliJ中获得的异常:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.runSingleTest(JavaSpecs2Runner.java:130)
at org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.main(JavaSpecs2Runner.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.RuntimeException: can not create specification: test.ApplicationSpec
at scala.sys.package$.error(package.scala:27)
at org.specs2.specification.SpecificationStructure$.createSpecification(BaseSpecification.scala:96)
at org.specs2.runner.ClassRunner.createSpecification(ClassRunner.scala:64)
at org.specs2.runner.ClassRunner.start(ClassRunner.scala:35)
at org.specs2.runner.ClassRunner.main(ClassRunner.scala:28)
at org.specs2.runner.NotifierRunner.main(NotifierRunner.scala:24)
... 11 more
Run Code Online (Sandbox Code Playgroud) 当我运行我的应用程序时,浏览器显示
[ExecutionException: Boxed Error]
Run Code Online (Sandbox Code Playgroud)
它没有说明行号等.
在控制台中,我有以下内容
! @6elaah0c8 - Internal server error, for (GET) [/testlearn] ->
play.api.Application$$anon$1: Execution exception[[ExecutionException: Boxed Error]]
at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.1]
at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$17$$anonfun$apply$24.apply(PlayDefaultUpstreamHandler.scala:326) [play_2.10.jar:2.1.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$17$$anonfun$apply$24.apply(PlayDefaultUpstreamHandler.scala:324) [play_2.10.jar:2.1.1]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.1]
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.1]
java.util.concurrent.ExecutionException: Boxed Error
at scala.concurrent.impl.Promise$.resolver(Promise.scala:52) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Promise$.scala$concurrent$impl$Promise$$resolveTry(Promise.scala:44) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:116) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:58) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:23) [factorie-1.0.0-M4-jar-with-dependencies.jar:na]
Caused by: java.lang.AssertionError: assertion failed
at scala.Predef$.assert(Predef.scala:165) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.util.TraversableExtras$class.max2ByDouble(TraversableExtras.scala:95) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.package$$anon$2.max2ByDouble(package.scala:148) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.optimize.SampleRankExample.accumulateExampleInto(SampleRank.scala:31) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na]
at cc.factorie.optimize.OnlineTrainer$$anonfun$processExamples$3.apply(Trainer.scala:72) ~[factorie-1.0.0-M4-jar-with-dependencies.jar:na] …Run Code Online (Sandbox Code Playgroud) 框架Lift,Play和Wicket有哪些优缺点?哪些特征最好或仅受每个特征支持?
谢谢
我只是想知道是否可以从Play更改默认包.例如:我想将"controllers"包更改为"com.test.controllers".我不知道这是否有意义,但我只是想知道如果可能的话.我在Play网站上找不到与此相关的任何内容.