问题标签 [playframework-2.6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
812 浏览

scala-ide - 无法在 Scala IDE 中调试 play framework 2.6.x 应用程序

我是 Play 新手,我已经安装了 SBT 1.0.2、Scala IDE 4.6.1,从 play 文档下载了 play-scala-starter-example 项目,我想调试该项目,我做了以下事情。

  1. 将环境变量 SBT_OPTS 设置为 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999
  2. 尝试使用“sbt -jvm-debug 9999 run”运行该项目,但它给出“Not a valid command: jvm-debug”
  3. 用“sbt run”在Scala IDE中运行它,我创建了以下配置,并在示例项目的HomeController中添加了断点,但是当我刷新在端口9000上运行的页面时不会停止,并且当我使用“Scala Debugger (Socket Attach)它给出错误“无法连接到远程虚拟机。连接超时。” Scala IDE 配置
0 投票
2 回答
459 浏览

playframework - Play 2.6 和 Ebean 的多数据库源不工作

我有 2.6.5 版本的 Play 和多模块(几个 sbt 子模块)配置。我设置了 2 个不同的数据源并出现 Ebean 错误:

仅当我application.conf.

我的build.sbt

我的 ebean 实体存在于common模块中。application.conf我在项目中只有一个root和 2 个数据源:

我发现,如果我注释掉第二个ebean.mssql选项,一切都会好起来的。但是有两个不同的映射类列表我得到了例外。

我尝试使用文档https://www.playframework.com/documentation/2.6.5/JavaEbean中的所有指令,但仍然没有成功。

我的plugins.sbt

Ps 我正在从 2.4(和以前的 2.3)版本的 Play 迁移项目,一切正常。

0 投票
0 回答
62 浏览

scala - 无法在 Play 2.6 可重用块中嵌入图像 url

在 Play 2.5.9 中,我可以将图像嵌入到可重复使用的块中。由于移动到 Play 2.6.3 ,图像无法显示。见 https://github.com/raychenon/play-table-of-contents/blob/master/app/views/thankyou.scala.html#L5

无法显示 https 或 http 上的任何完整图像 URL。

您可以在此处查看运行的应用程序。当前运行的版本在这个分支中。

我很确定我在application.conf. 或者知道如何在 Play 2.6 中嵌入图像?

0 投票
3 回答
2413 浏览

playframework - 播放 CORS 不工作

我已经在本地部署了我的 Play 应用程序,并通过localhost:9000我的浏览器访问我的 REST API 工作正常。

但是,从以下位置执行 jQuery 脚本(见下文)时出现以下错误file:///C:/Users/XXX/XXX//index.html

我按照https://www.playframework.com/documentation/2.6.x/CorsFilter下给出的说明进行操作。

我的build.sbt

我的application.conf

注意:我尝试了allowedOrigins = null&allowedOrigins = ["*"]

jQuery脚本:

以下是 Play 所说的:

0 投票
0 回答
463 浏览

java - PlayFrameWork 2.6- JAVA WS- 发送和接收 json 数据

如何通过 url 中的帖子发送数据(使用 ws (url) .post ())以及如何在同一应用程序中操作该数据

我正在使用ws。以及此代码通过邮件发送消息

}

我想在控制器中接收这些数据,我正在使用这段代码:

}

但是访问网址时出现此错误

“CompletionException:java.lang.RuntimeException:从 WS 响应 wsBody 解析 JSON 时出错”

我是 playframework 的新手,我需要做一个网络服务,我可以在其中发布一些信息,然后访问该 url 并捕获该信息。请帮我

0 投票
2 回答
198 浏览

java - 从 Play 2.5.3 迁移到 Play 2.6.6 时出现 Guice CreationException

我已经阅读了 2.6.x迁移指南WS 迁移指南,并且已经解决了大多数初始错误,但我似乎无法通过应用程序启动时发生的这个错误:

WS 迁移指南提到 WSAPI 已被弃用,但似乎 GUICE 仍在尝试绑定到已实现的类?我真的不确定。

如果有帮助,请查看我的 libraryDependencies。

插件.sbt:

0 投票
0 回答
238 浏览

json - PlayFramework 2.6:java.util.concurrent.ExecutionException:java.lang.RuntimeException:从 WS 响应 wsBody 解析 JSON 时出错

我正在尝试测试网络服务。我正在使用下面的课程进行测试

但是,当使用 POST (.POST ("/web").RouteTo (()) 我得到这个错误 java.util.concurrent.ExecutionException: java.lang.RuntimeException: Error parsing JSON of WS wsBody response

但是在使用GET(.GET("/web").)RouteTo(()-)的时候正常工作,会是什么呢?我想使用 post,因为它是一个网络服务,我将始终在其中发布以发送数据。我帮

0 投票
1 回答
328 浏览

scala - 播放:迁移 2.5 到 2.6:错误 ProvisionException

从 Play 版本 2.5 迁移到 2.6 时出现错误。

以下是我已应用的操作列表:

  • sbt 清洁

  • sbt 编译

  • sbt 更新

  • sbt 日食

    我得到了这个例外

    ProvisionException:无法配置,请参阅以下错误:

    1) 定位时注入构造函数时出错,java.lang.NoClassDefFoundError: org/pac4j/play/scala/Security$class at controllers.EntityController.(EntityController.scala:50) at controllers.EntityController.class(EntityController.scala:50) controllers.EntityController 用于 router.Routes.(Routes.scala:50) 的第四个参数,同时定位 router.Routes,同时定位 play.api.inject.RoutesProvider,同时定位 play.api.routing.Router 用于 play.api 的第一个参数.http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:222) 同时定位 play.api.http.JavaCompatibleHttpRequestHandler 同时为 play.api.DefaultApplication.(Application.scala:236) 的第 6 个参数定位 play.api.http.HttpRequestHandler .api.DefaultApplication.class(Application.scala:235) 同时定位 play.api。定位 play.api.Application 时的 DefaultApplication 原因:java.lang.NoClassDefFoundError: org/pac4j/play/scala/Security$class at controllers.EntityController.(EntityController.scala:60) at controllers.EntityController$$FastClassByGuice$$f46ad4b6 .newInstance() 在 com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89) 在 com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111) 在 com.google.inject .internal.ConstructorInjector.construct(ConstructorInjector.java:90) 在 com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268) 在 com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46) 在 com.google.inject.internal。InjectorImpl.callInContext(InjectorImpl.java:1092) 在 com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 在 com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194) 在com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) 在 com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 在 com.google.inject.internal.SingleParameterInjector.getAll( SingleParameterInjector.java:62) 在 com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110) 在 com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90) 在 com.google.inject .internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268) 在 com.google。inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl .java:1015) 在 com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1054) 在 play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:409) 在 play.api.inject。 ContextClassLoaderInjector$$anonfun$instanceOf$3.apply(Injector.scala:118) at play.api.inject.ContextClassLoaderInjector.withContext(Injector.scala:126) at play.api.inject.ContextClassLoaderInjector.instanceOf(Injector.scala:118)在 play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:104) 在 play.api.inject.RoutesProvider$$anonfun$2.apply(BuiltinModule.scala:104) 在 scala.Option.fold(Option .scala:158) 在 play.api.inject.RoutesProvider.get$lzycompute(BuiltinModule.scala:104) 在 play.api.inject.RoutesProvider.get(BuiltinModule.scala:100) 在 play.api.inject.RoutesProvider.get(BuiltinModule .scala:99) 在 com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 在 com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72) 在 com.google.inject。 internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61) 在 com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62) 在 com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)在 com.google.inject.internal.ConstructorInjector 的 com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)。在 com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268) 在 com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90) 提供(ConstructorInjector.java:110) .google.inject.internal.FactoryProxy.get(FactoryProxy.java:56) 在 com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 在 com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector .java:62) 在 com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:110) 在 com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90) 在 com.google.inject。 com.google.inject.internal 上的 internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)。ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 在 com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) 在 com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 在com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194) 在 com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41) 在 com.google.inject.internal.FactoryProxy.get (FactoryProxy.java:56) 在 com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019) 在 com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085) 在 com。 google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015) 在 com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1054) 在 play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:409) 在 play.api.inject.guice.GuiceInjector.instanceOf(GuiceInjectorBuilder.scala:404) 在 play.api.inject.ContextClassLoaderInjector $$anonfun$instanceOf$2.apply(Injector.scala:117) at play.api.inject.ContextClassLoaderInjector.withContext(Injector.scala:126) at play.api.inject.ContextClassLoaderInjector.instanceOf(Injector.scala:117) at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:137) at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21) at play.core.server.DevServerStart$$anonfun$mainDev $1$$anon$1$$anonfun$1.apply(DevServerStart.scala:174) at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$1.apply(DevServerStart.scala:171) at玩。utils.Threads$.withContextClassLoader(Threads.scala:21) at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1.reload(DevServerStart.scala:171) at play.core.server.DevServerStart$$ anonfun$mainDev$1$$anon$1.get(DevServerStart.scala:124) at play.core.server.AkkaHttpServer.play$core$server$AkkaHttpServer$$modelConversion(AkkaHttpServer.scala:183) at play.core.server。 AkkaHttpServer.play$core$server$AkkaHttpServer$$handleRequest(AkkaHttpServer.scala:189) at play.core.server.AkkaHttpServer$$anonfun$5.apply(AkkaHttpServer.scala:106) at play.core.server.AkkaHttpServer$$ anonfun$5.apply(AkkaHttpServer.scala:106) at akka.stream.impl.fusing.MapAsync$$anon$23.onPush(Ops.scala:1172) at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala :499) 在 akka.stream.impl.fusing.GraphInterpreter。processEvent(GraphInterpreter.scala:462) at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:368) at akka.stream.impl.fusing.GraphInterpreterShell.runBatch(ActorGraphInterpreter.scala:571) at akka.stream .impl.fusing.GraphInterpreterShell$AsyncInput.execute(ActorGraphInterpreter.scala:457) at akka.stream.impl.fusing.GraphInterpreterShell.processEvent(ActorGraphInterpreter.scala:546) at akka.stream.impl.fusing.ActorGraphInterpreter.akka$stream $impl$fusing$ActorGraphInterpreter$$processEvent(ActorGraphInterpreter.scala:725) at akka.stream.impl.fusing.ActorGraphInterpreter$$anonfun$receive$1.applyOrElse(ActorGraphInterpreter.scala:740) at akka.actor.Actor$class。在akka.stream.impl.fusing.ActorGraphInterpreter.aroundReceive(Actor.scala:514).aroundReceive(ActorGraphInterpreter.scala:650)。actor.ActorCell.receiveMessage(ActorCell.scala:527) at akka.actor.ActorCell.invoke(ActorCell.scala:496) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) at akka.dispatch.Mailbox.run (Mailbox.scala:224) 在 akka.dispatch.Mailbox.exec(Mailbox.scala:234) 在 akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) 在 akka.dispatch.forkjoin.ForkJoinPool$WorkQueue。 runTask(ForkJoinPool.java:1339) at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 原因:java.lang.ClassNotFoundException : org.pac4j.play.scala.Security$class at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass (类加载器。java:357) ... 91 更多

使用 Security 的类是这个

我写了文件 sbt.

有什么要改的??

0 投票
1 回答
483 浏览

scala - 设置 IntelliJ 2017 以使用 Gradle 4.2 和最新的 Play Framework 2.6

我正在尝试设置 IntelliJ 2017.2 以使用 Gradle 4.2.1 与我的 Play 2.6 应用程序一起使用。

我还安装了 IntelliJ 的 Scala 插件。

经过数小时筛选各种博客和指南后,我创建了一个看起来像这样的 build.gradle 文件,它应该可以解决问题:

我面临的主要问题是 IntelliJ 无法正确找到我的所有资源。

如果我尝试在项目设置中手动添加内容(例如“app”目录),我的更改会通过 Gradle 刷新重置。

我也尝试过使用 Gradle 配置,例如“为每个源集创建单独的模块”,但它并没有太大帮助。

我知道这不是典型的设置,因为大多数人在 Play 中使用 SBT,但不幸的是,由于 Gradle 是工作中的标准,我们暂时坚持这样做。有没有人对 IntelliJ 2017、Gradle 4.2 和 Play 2.6 的设置感到幸运?

0 投票
2 回答
1913 浏览

scala - 在 play-framework 中运行测试时如何应用 play-evolutions?

在使用游戏框架中运行测试时,我遇到了进化问题

  • scala 的 playframework v2.6.6
  • 玩滑 v3.0.2
  • play-slick-evolutions v3.0.2

测试看起来像这样:

数据库配置如下所示:

假设有一个创建表的进化脚本,foos并且该脚本在开发模式下工作正常。

运行测试时会抛出以下错误:

play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[JdbcSQLException: Table "foos" not found;

foos找不到该表,因此我假设尚未应用数据库演变。

然后我将数据库配置更改为在开发模式下使用的 postgresql。

使用此配置,测试工作正常,数据存储在数据库中,因此数据库演变运行良好。

现在的问题是,数据库在测试后没有清理。我想用干净的数据库运行每个测试套件。

总结一下。不应用 H2Db 进化,应用 postgresql 进化但未清理。

即使这明确定义在application.test.conf

我也试过

没有效果。

然后我尝试通过以下方式手动执行此操作:

然后将测试更改为:

对于H2数据库配置无效,同样报foos找不到table的错误。对于 postgresql 数据库配置,会抛出进化异常

play.api.db.evolutions.InconsistentDatabase: Database 'default' is in an inconsistent state![An evolution has not been applied properly. Please check the problem and resolve it manually before marking it as resolved.]

我希望在每个测试套件之前运行进化上升,并在每个测试套件之后运行进化下降。如何做到这一点?