我在Play框架中完成了一个网站建设。该网站部署在服务器上。但是,我正面临一些像这样的随机发生的问题......
糟糕,发生错误
已记录此异常,ID为6k8hohpbh。
为什么会出现此错误?
我得到了这样的堆栈跟踪
2014-11-18 11:00:54,610 [http-listener-1(5)] ERROR play -
@ 6k8hohpb6内部服务器错误(500)
发生执行异常RuntimeException:play.mvc.Http $ javassist找不到请求[134]
play.exceptions.JavaExecutionException:play.mvc.Http $请求不是Javassist所发现[134]在play.mvc.ActionInvoker.invoke(ActionInvoker.java:236)在play.server.ServletWrapper $ ServletInvocation.execute(ServletWrapper.java: 578)at play.Invoker $ Invocation.run(Invoker.java:282)at play.server.ServletWrapper $ ServletInvocation.run(ServletWrapper.java:569)at play.Invoker.invokeInThread(Invoker.java:72)at play。 server.ServletWrapper.service(ServletWrapper.java:144)在javax.servlet.http.HttpServlet.service(HttpServlet.java:790)在org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)在组织.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline) .java:734)at.com.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline。 java:99)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)org.apache.catalina.connector .CoyoteAdapter.service(CoyoteAdapter.java:282)at com.sun.enterprise.v3.services.impl.ContainerMapper $ HttpHandlerCallable.call(ContainerMapper.java:459)at com.sun.enterprise.v3.services.impl.ContainerMapper .service(ContainerMapper.java:167)org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) )在org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)在org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119)在org.glassfish.grizzly.filterchain .defaultFilterChain.executeFilter(DefaultFilterChain.java:284)位于org.gl上的org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) assfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)在org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)在org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java: 77)在org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)在org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)在org.glassfish.grizzly.strategies .WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56)org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java: 137)在org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:565)org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run(AbstractThreadPool.java:545)at java.lang.Thread .run(Thread.java:745)引起by:java.lang.RuntimeException:play.mvc.Http $ javassist.runtime.Desc.getType(Desc.java:)javassist.runtime.Desc.getClassType(Desc.java:156)javassist [134]找不到请求。 122)在play.mvc的play.mvc.ActionInvoker.invoke(ActionInvoker.java:509)上的controllers.AppController._checkAuthenticityToken(AppController.java:407)上的javassist.runtime.Desc.getType(Desc.java:78)处。在play.mvc.ActionInvoker.handle前面的Play.mvc.ActionInvoker.handleBefores(ActionInvoker.java:327)的play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478)上的ActionInvoker.invokeControllerMethod(ActionInvoker.java:483)(ActionInvoker) .java:141)......还有34个
尝试在您的开发机器上运行相同的生产应用程序:如果没有错误,那么生产数据库可能就是问题所在。在我的情况下,我有这个错误,但我的生产数据库没有权限访问一个表;还有一些表在prod机器上不存在,而他们在dev机器上做了。修复数据库问题解决了这个问题。
另外:要处理异常,您可以使用play的动作组合来调用try / catch中包含的任何动作方法并记录错误(在文件,数据库中并发送电子邮件...)