gpt4 book ai didi

java - 在 Java Controller (PlayFramework) 中执行 Scala Action

转载 作者:行者123 更新时间:2023-11-29 08:47:05 25 4
gpt4 key购买 nike

我使用 Playfrawork 和 Java 创建了一个应用程序。

我在上面使用 SecureSocial 插件。在我的 Controller 中有一种方法,其中一个过程是在 SecureSocial 中执行句柄启动重置密码。但该方法是用 Scala 编写的。

如果我像这样在我的 Java 源代码中引用该方法:

Registration.handleStartResetPassword();

什么都没发生!如果我更改为以下行,则相同:

Registration.handleStartResetPassword().apply();

与以下源代码块相同:

play.api.libs.iteratee.Iteratee<byte[], SimpleResult> it = Registration.handleStartResetPassword().apply(ctx()._requestHeader());
Future<SimpleResult> future = it.run();
Option<Try<SimpleResult>> result = future.value();
SimpleResult res = result.get().get();

我删除了所有代码并尝试执行 Secure Social 代码但没有任何反应。这是我的方法:

public static Result resetPassword() {
Registration.handleStartResetPassword().apply();
return TODO;
}

我的路线是这条:

POST    /reset    controllers.ProfileController.resetPassword

已编辑:添加了另一种我尝试运行但没有运行该方法的方法。

最佳答案

当您调用 handleStartResetPassword() 时你得到一个 Action 的实例返回,在您通过调用 Action.apply(request) 向其提供特定请求之前,它实际上不会执行任何操作。然后它将实际运行该 Controller 操作的逻辑并返回 Future<Result> .

不完全确定您是否可以向后桥接并从中获得 Play Java 异步结果。

关于java - 在 Java Controller (PlayFramework) 中执行 Scala Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24623482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com