Play 2 推特认证

Play 2 Twitter authentication

我有一个 Play 2 网络应用程序,用户可以在其中使用 Twitter (/authenticate/twitter) 登录。服务器启动一段时间后,登录不再有效,我收到:

    Feb 17, 2015 8:22:10 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [play] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.util.concurrent.TimeoutException: This request was timed out after 60000 ms
        at play.core.server.servlet25.Play2Servlet25RequestHandler.onFinishService(RequestHandler.scala:36)
        at play.core.server.servlet.Play2GenericServletRequestHandler.apply(RequestHandler.scala:371)
        at play.core.server.servlet.Play2WarServer$$anonfun$handleRequest.apply(Play2Server.scala:64)
        at play.core.server.servlet.Play2WarServer$$anonfun$handleRequest.apply(Play2Server.scala:64)
        at scala.Option.map(Option.scala:145)
        at play.core.server.servlet.Play2WarServer$.handleRequest(Play2Server.scala:64)
        at play.core.server.servlet.GenericPlay2Servlet.service(Play2CommonServlet.scala:36)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)

我根本不知道从哪里开始调查。如果我重新启动服务器登录工作一段时间...你能给个提示吗?

我正在使用 SecureSocial 进行 Twitter 身份验证。应用程序使用 Tomcat 服务器部署在 Elastic Beanstalk 上。

你们的服务是做什么的?您是否尝试过线程转储?

这很可能是由于 servlet API 上的 运行ning - 特别是 servlet 2.5。 Play是一个异步框架,servlet 2.5是完全同步的。您在尝试 运行 同步 Web 服务器中的异步 Web 应用程序时遇到麻烦。如果我是你,我会使用原生支持 Play 的平台,例如 Heroku。