问题标签 [playframework-2.5]
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.
java - Post 方法不适用于 Play 2.5 中的类对象
我尝试从 PostMan 调用 Post 方法,但无法调用。
控制器文件:
路线文件:
两者都得到方法/url
并且/user/:id
工作正常,但我对帖子有点困惑/user
。我尝试了文件中的代码,但出现了上述错误。
scala - scala iteratee 递归处理文件和子目录
我想为目录和子目录中的每个文件应用一个函数,如下所示:
这行得通。这里的问题是如何使用 scala Iteratees 重构此代码。像这样的东西:
java - 使用Ebean,实体列表的填充属性值存储了另一个相关的实体属性
我将尝试直接用代码描述我的问题,然后说我需要什么,请注意,我已将我的代码最小化,以解决我遇到的问题:
我从 Entity 获取提要列表:
在这里,我试图让这个实体充满正确的count
值。
存储计数数据的提要实体。
从我尝试调用的服务中:
我可以像这样获得每个触发器的计数:
我只是想获取Feed
具有Event
信息和EventTrigger
信息的列表,并且count
属性填充了来自的计数值EventTriggerFeed
我只是在没有太多迭代的情况下坚持了完美的方式,我正在考虑获取每个EventTrigger
内行的计数值Feed
,但这可能会导致我打很多电话:
但是你能想象如果我有 50 个提要吗?
有没有关于如何优化这个头痛的想法?
java - 播放 2.5 过滤器
我正在尝试从 2.4 迁移到玩 2.5。我在过滤器代码中遇到问题。下面是我的过滤器代码
根据文档https://www.playframework.com/documentation/2.5.x/JavaHttpFilters
asJava() 方法可用,并在 Eclipse 中完美编译 2.5 jar。但是当我通过 activator ui 或 activator dist 运行时,上面的代码会失败。
我已经用下面的 addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.1") 更新了 plugins.sbt
但它仍然失败。还有什么应该改变的?或者是否有任何其他配置要更改?
java - 带有 Play 2.5 的 play-pac4j:@RequiresAuthentication 注释导致堆栈跟踪
我目前在使用play-pac4j库和Play Framework 2.5时遇到问题。
注释:
在我的控制器方法中导致此堆栈跟踪:
`
com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99) 位于 com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:658
`
这是来自我的 build.sbt 的片段,我用于依赖项:
我的 SecurityModule 类:
}
包 play.libs.F 在我的项目中可用。 日食截图
我基本上会尝试所有想到的东西。现在我只想在路由配置文件中为我的一个地址启用 facebook 的简单身份验证。我按照此处发布的说明进行操作:https ://github.com/pac4j/play-pac4j 。任何帮助和提示将不胜感激。
scala - 如何在多项目中使用 Play 框架?
我正在努力寻找有关如何在根项目是普通 SBT 项目的多项目中使用 Play Framework 的任何信息。基本上这是我项目的布局:
/
- common
- some-other-projects
- my-play-project
- - app
- - - controllers
- - conf
- - - routes
- build.sbt
我可以通过在 SBT 控制台中运行来启动应用程序my-play-project/run
,但是当我尝试访问任何页面时,我得到一个 500 并且记录了这个错误:
有什么明显的我遗漏的东西破坏了这个项目吗?如文档中所述,控制器以最简单的方式定义。我提供的唯一路线也是如此:
我正在使用 Play Framework 2.5.1,项目构建定义如下:
playframework - 如何在 Play 2.5 HikariCP 中启用 Dropwizard Metrics?
Play 2.5 中使用的 HikariCP 数据库连接池支持 Dropwizard Metrics。推荐的方法是使用HikariConfig.setMetricRegistry(MetricRegistry)
,但 Play 似乎没有为 HikariConfig 使用依赖注入。是否有其他选项可以在 Play HikariCP 上设置 MetricRegistry?
scala - 当从 websocket actor 接收时,播放 actor sender() 返回自身
我正在使用 Play 2.5。我正在使用 Websocket Actor 将消息发送到 Routes Actor。但是,当在 Routes 上收到 msg 时,sender() 方法返回 Routes 本身而不是那个 Websocket 参与者。
申请如下
用户演员:
路线演员
log.info 打印了以下行:
[info] a.RoutesActor - Routes:Actor[akka://application/user/routes#854844162] 获取查询来自:Actor[akka://application/user/routes#854844162] 实际上是:Actor[akka://应用程序/用户/$b/flowActor#-75193340]
如您所见, sender() 指向自身而不是 flowActor。因此,我不能使用 sender() 来回复消息。这让我很困惑。有谁知道这里出了什么问题?
json - 如何通过scala中的参数化类型获取隐式val/def?
我正在使用 Playframework 2.5 并尝试创建一个所有 Json 请求/响应控制器方法调用的方法,以避免implicit val foo = Json.writes[Bar] or reads[Bar]
在每个控制器方法内部写入以及处理基本验证并返回错误代码。
BaseController 将被每个控制器继承
控制器
上面的代码无法编译,因为handleJson
'simplicit val convertReq = Json.reads[T]
和implicit val convertRes = Json.writes[U]
说
找不到类型 T 的 Json 反序列化器。尝试为此类型实现隐式读取或格式。
我已经尝试过制作案例类的伴生对象并将隐含的对象放入其中,尽管这并不能解决任何问题。
我的问题是,如何使用参数化类型的隐式值?
提前致谢。
scala - 如何集成 Play(Web 框架)、Deadbolt(授权)和 Slick(数据库访问)
简而言之:我的应用程序使用Play web 框架版本 2.5.1。我想使用Deadbolt 授权系统和Slick来访问我数据库中的用户授权信息。我怎样才能做到这一点? Deadbolt是专门为Play制作的,Play自带了开箱即用的Slick ,所以即使不是很容易,它也应该是可能的。
基于Deadbolt 文档中的“Integrating Deadbolt”,我扩展了这个DeadboltHandler
特性。它的抽象getSubject()
方法似乎是进行数据库查询的地方(文档如是说,但没有任何示例)。该方法接收作为参数 anAuthenticatedRequest
并返回Subject
,基本上是经过身份验证的用户 ID,以及角色和权限(授权)。
我被卡住了,因为虽然 Play 带有Slick 集成,但文档只描述了如何在 Play 控制器中使用它。(注意我想使用依赖注入来做到这一点,因为不推荐使用全局查找并且容易出错)
我成功地在我的控制器中使用Deadbolt来限制对某些资源的访问,但控制器似乎是Deadbolt对授权详细信息进行数据库查询的错误位置(如果是,那DeadboltHandler
将是无目的的)。控制器构造函数签名定义类似于(注意控制器访问存储 Web 内容的默认数据库而不是授权数据库):
这样可行。但是,类似地注释DeadboltHandler
扩展@Inject
无法提供对数据库的Slick访问:
结果是
显然,Play为控制器做了一些特殊的事情,以便@Inject
注释工作,我缺乏理解。我认为它本质上是使用注入器而不是new
关键字构造控制器,但是我通过Play源代码的搜索未能告诉我到底发生了什么。如果我能找到它,也许我可以模仿这种技术来构建一个DeadboltHandler
.
我看到 play 带有诸如GuiceInjector和GuiceInjectorBuilder 之类的类,听起来好像它们可能是解决方案的一部分,但是我的实验还没有告诉我如何使用它们,以及是否有任何关于如何在特定中使用它们的文档扩展的上下文DeadboldHandler
,我想念它。
我发现了这个先前的问题:Scala (Play 2.4.x) How to call a class with @inject() annotation,这似乎很重要。不幸的是,尽管原始海报有六条后续评论,但仍未得到答复。我觉得如果我有这个问题的答案,我就会有这个问题的答案,尽管我的问题非常具体:如何相互使用Play和Deadbolt和Slick(在Scala中)。
最让我困惑的是,这似乎应该足够普遍,以至于它要么在文档中被提及,要么已经在 SO 上被询问过。我未能找到任何此类参考资料通常意味着我正在做一些非常独特的错误,以至于没有人有机会谈论它。似乎它应该足够简单,我乐观地希望我错过了一些非常基本的东西,我期待着某个善良的灵魂告诉我这些知识。