多个异步ajax调用Play的路由混合

时间:2015-04-06 17:11:30

标签: playframework-2.0

我有点失落。最近我遇到多个并行的ajax调用时,我在我的应用程序中遇到了奇怪的行为。他们被Play搞混了。

更确切地说:我有两个ajax调用A和B发送大约。同时在客户端(使用jQuery ajax())。在我的Play应用程序中,应该通过操作1来处理呼叫A(并且在几天前处理没有任何问题)。以同样的方式,呼叫B应该由动作2处理。

实际发生的事实是,有时确实呼叫A由动作1和B由2处理,但有时A和B都由1处理,或者在其他时候A和B都由2处理。我不能找到任何模式。当然,这种行为完全让我的客户端感到困惑。

我现在有点迷失了。我没有更改路由中的任何内容,也没有更改任何其他主要代码 - 我主要处理JavaScript和GUI。所以我想在这里询问是否有其他人曾经遇到过与Play相似的事情。如果有任何帮助,我可以发布代码(我必须稍微清理一下)。

1 个答案:

答案 0 :(得分:1)

我找到了原因 - 虽然我不太明白为什么会这样。原因是来自动作组合类的Google Guice插件的类注释@Singleton

@Singleton
public class AuthenticationAction extends Action<Authenticated> {

@With(AuthenticationAction.class)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Authenticated {
}

private final UserDao userDao;

@Inject
AuthenticationAction(UserDao userService) {
    this.userDao = userService;
}
...

删除@Singleton注释后,它再次正常工作,不再有ajax调用混音。 :)

这仍然是一种奇怪的行为。

相关问题