PlayFramework 2.2 Java动作合成

PlayFramework 2.2 Java动作合成,java,playframework,playframework-2.0,Java,Playframework,Playframework 2.0,我一直在我的剧本中使用动作组合!到目前为止,这些应用程序运行良好。然而,随着最近的2.2.0更新,它们不再工作,我不知道如何正确地更新它们 例如,该行动: 公共类ChatMsgValidation扩展操作{ @使用(ChatMsgValidation.class) @目标({ElementType.TYPE,ElementType.METHOD}) @保留(RetentionPolicy.RUNTIME) public@interface validchatmg{ } 公共结果调用(Http.C

我一直在我的剧本中使用动作组合!到目前为止,这些应用程序运行良好。然而,随着最近的2.2.0更新,它们不再工作,我不知道如何正确地更新它们

例如,该行动:

公共类ChatMsgValidation扩展操作{
@使用(ChatMsgValidation.class)
@目标({ElementType.TYPE,ElementType.METHOD})
@保留(RetentionPolicy.RUNTIME)
public@interface validchatmg{
}
公共结果调用(Http.Context ctx)抛出Throwable{
Utils.debugFunctionCall(“ValidChatMsg()”+ctx.toString());
//验证我们得到了“player”参数
JsonNode jsonRequest=request().body().asJson();
if(!WSUtils.validateJSONField(Constants.JSON_MSG,jsonRequest)){
返回badRequest(WSUtils.simpleMissingFieldMsg(Constants.JSON_MSG));
}
RequestParser RequestParser=新的RequestParser(request());
字符串chatMsg=requestParser.getMessage();
if(chatMsg.isEmpty()){
返回badRequest(WSUtils.simpleFailureMsgWithReason(Messages.get(“message.cannot.be.empty.error”)、FailConstants.REASON\u empty);
}
if(chatMsg.length()Constants.MAX\u CHAT\u MESSAGE\u length){
返回badRequest(WSUtils.simpleFailureMsgWithReason(Messages.get(“message.too.long.error”),FailConstants.REASON\u too\u long));
}
返回委托呼叫(ctx);
}
}

现在的问题是“call”方法应该返回“Promise”而不是“Result”,我想不出一种方法来返回一个简单的JSON消息,而不做大量的代码,这些代码都是无用的,因为我创建的伪函数只是为了有承诺。一定有更好的方法我看不到,请建议。

我找到了更好的解决方案。详情如下:

return F.Promise.pure((SimpleResult) badRequest(WSUtils.simpleFailureMsgWithReason(Messages.get("message.cannot.be.empty.error"), FailConstants.REASON_EMPTY)));