Playframework 播放框架+;SecureSocial:java.lang.NoSuchMethodError:SecureSocial.controllers.ReverseLoginPage.authenticate

Playframework 播放框架+;SecureSocial:java.lang.NoSuchMethodError:SecureSocial.controllers.ReverseLoginPage.authenticate,playframework,securesocial,Playframework,Securesocial,我还不熟悉Play框架,我正试图将SecureSocial插件与Facebook-OAuth2提供商合并到我的应用程序中。我在向/login发送GET请求时遇到了此错误: ! @6apkmf9m3 - Internal server error, for request [GET /login] -> play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NoSuchMethodError: s

我还不熟悉Play框架,我正试图将SecureSocial插件与Facebook-OAuth2提供商合并到我的应用程序中。我在向
/login
发送GET请求时遇到了此错误:

! @6apkmf9m3 - Internal server error, for request [GET /login] ->

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NoSuchMethodError: securesocial.controllers.ReverseLoginPage.authenticate(Ljava/lang/String;)Lplay/api/mvc/Call;]]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1.jar:2.0.2]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1.jar:2.0.2]
    at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
    at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.2]
    at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2]
Caused by: java.lang.NoSuchMethodError: securesocial.controllers.ReverseLoginPage.authenticate(Ljava/lang/String;)Lplay/api/mvc/Call;
    at securesocial.core.IdentityProvider.authenticationUrl(IdentityProvider.scala:86) ~[classes/:na]
    at securesocial.views.html.login$$anonfun$apply$3$$anonfun$apply$4.apply(login.template.scala:44) ~[classes/:na]
    at securesocial.views.html.login$$anonfun$apply$3$$anonfun$apply$4.apply(login.template.scala:43) ~[classes/:na]
    at play.templates.TemplateMagic$.defining(ScalaTemplates.scala:756) ~[templates_2.9.1.jar:2.0.2]
    at securesocial.views.html.login$$anonfun$apply$3.apply(login.template.scala:43) ~[classes/:na]
    at securesocial.views.html.login$$anonfun$apply$3.apply(login.template.scala:42) ~[classes/:na]
  • 有人能告诉我在哪里可以找到更多关于这个错误的信息吗
  • Play如何从
    securesocial.controllers.ReverseLoginPage
    转到
    securesocial.controllers.LoginPage
    ,前者存在于模块中
来自:

对于routes文件中使用的每个控制器,路由器将生成 routes包中的“反向控制器”,具有相同的操作 方法,但返回play.api.mvc.Call 而不是play.api.mvc.Action


我想这就是
反向登录页面
的来源,但我不知道失败的原因。可能是路由中的一些错误,或者仍然存在的旧类。试着运行
clean
,只是为了确保不是这样。

即使我是新玩框架的。我现在不知道为什么,但这与你的路由文件有关。这是因为securesocial正在尝试调用配置中未给出其路径的操作。尝试此示例路由,可以通过逐个删除您认为不必要的路由来尝试调试,以获得丢失的一条路由

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET     /                           controllers.Application.index()




# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

# Login page
GET     /login                      securesocial.controllers.LoginPage.login
GET     /logout                     securesocial.controllers.LoginPage.logout

# User Registration and password handling (only needed if you are using UsernamePasswordProvider)
GET     /signup                     securesocial.controllers.Registration.startSignUp
POST    /signup                     securesocial.controllers.Registration.handleStartSignUp
GET     /signup/:token              securesocial.controllers.Registration.signUp(token)
POST    /signup/:token              securesocial.controllers.Registration.handleSignUp(token)
GET     /reset                      securesocial.controllers.Registration.startResetPassword
POST    /reset                      securesocial.controllers.Registration.handleStartResetPassword
GET     /reset/:token               securesocial.controllers.Registration.resetPassword(token)
POST    /reset/:token               securesocial.controllers.Registration.handleResetPassword(token)
GET     /password                   securesocial.controllers.PasswordChange.page
POST    /password                   securesocial.controllers.PasswordChange.handlePasswordChange


# Providers entry points
GET     /authenticate/:provider     securesocial.controllers.ProviderController.authenticate(provider)
POST    /authenticate/:provider     securesocial.controllers.ProviderController.authenticateByPost(provider)
GET     /not-authorized             securesocial.controllers.ProviderController.notAuthorized

它适用于play 2.2.0版本,secure social位于主快照中。

看起来错误出现在登录模板中。你也可以粘贴吗?它是securesocial使用的模板吗?您是否已将SecureSocial路由复制到应用程序的路由文件中?查看上的用户指南,确保您遵循其中所述。黄金法则,从Github存储库克隆安全社交项目并进行修改,我也做了同样的事情,相信我,这非常简单。我假设你正在开始一个新项目。