运行应用程序ProvisionException时出现Play Framework错误:无法配置,错误注入contstructor,com.google.inject.util.Module

时间:2017-11-29 18:34:51

标签: playframework

今天我正在尝试运行昨天正在运行的Play Framework应用程序。我没有更改代码。我运行了cleancompile,然后run来启动应用程序。 sbt中没有错误,但我收到的浏览器中有错误:

[ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, @766c242kk: Configuration error in :83
  at play.api.i18n.DefaultMessagesApi.<init>(Messages.scala:482)
  at play.api.i18n.DefaultMessagesApi.class(Messages.scala:482)
  while locating play.api.i18n.DefaultMessagesApi
  while locating play.api.i18n.MessagesApi
    for parameter 0 at play.i18n.MessagesApi.<init>(MessagesApi.java:32)
  at play.api.i18n.I18nModule.bindings(I18nModule.scala:14):
Binding(class play.i18n.MessagesApi to self) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
  while locating play.i18n.MessagesApi

1 error]

以下是在我的应用程序控制器中导致此错误的函数:

public Result index() {
    // Check that the email matches a confirmed user before we redirect
    Http.Session session = ctx().session();
    String email = ctx().session().get("email");
    if (email != null) {
        User user = User.findByEmail(email);
        if (user != null && user.validated) {
            boolean isAuth = AccessMiddleware.isAuthenticated();
            if (isAuth) {
                RoleType role = AccessMiddleware.getSessionRole();
                if (role != null) {
                    switch (role) {
                    case BA:
                        return GO_BA;

                    case SE:
                        return GO_SE;

                    case BAMANAGER:
                        return GO_BAMANAGER;

                    case SEMANAGER:
                        return GO_SEMANAGER;

                    case ADMIN:
                        return GO_ADMIN;

                    default:
                        return GO_HOME;
                    }
                } else {
                    Logger.debug("Application.index() - No Role - Clearing invalid session credentials");
                    session().clear();
                    return GO_HOME;
                }
            } else {
                Logger.debug("Application.index() - No user authenticated - Clearing invalid session credentials");
                session().clear();
                return GO_HOME;
            }
        } else {
            Logger.debug("Application.index() - Clearing invalid session credentials");
            session().clear();
        }
    }

    return ok(index.render(form(Register.class), form(Login.class), playAuth));
}

它出现在函数末尾的return ok语句中。

我发现了一些帖子,但答案并没有解决我的问题:

ProvisionException: Unable to provision, in play framework

ProvisionException: Unable to provision. Play Framework

我很感激帮助。

1 个答案:

答案 0 :(得分:0)

看起来conf > messages文件中的文字格式不正确。

我更正了messages文件并且运行正常。

编译时没有发现这一点。