Java 当代码未引用操作时,为什么找不到操作?

Java 当代码未引用操作时,为什么找不到操作?,java,playframework,Java,Playframework,我更改了应用程序的工作流,删除了以前使用过的4个操作 我进行了更改,不再保存creditcardsaved、achsaved和其他一些操作 在我的日志文件中,我得到了错误 "payment.creditcardsaved action not found" 保存方法public static void SaveCreditCard保存了付款,然后调用creditcardsaved()操作。从任何角度看都没有提及该行动 我不再希望对creditcardsaved()执行单独的操作,我不希望它显示在

我更改了应用程序的工作流,删除了以前使用过的4个操作

我进行了更改,不再保存creditcardsaved、achsaved和其他一些操作

在我的日志文件中,我得到了错误

"payment.creditcardsaved action not found" 保存方法
public static void SaveCreditCard
保存了付款,然后调用creditcardsaved()操作。从任何角度看都没有提及该行动

我不再希望对creditcardsaved()执行单独的操作,我不希望它显示在url中

因此,我没有在SaveCreditCard方法的末尾调用它,而是改为renderTemplate(“Payment/CreditCardSaved.html”,args)

屏幕上的输出将与之前的输出相匹配,但url应为SaveCreditCard。我还删除了creditcardsaved()方法,因此不会从任何地方意外调用它

错误的错误完整堆栈跟踪为

ERROR play - @67bi2d4oj payment.creditcardsaved action not found Action not found Action payment.creditcardsaved could not be found. Error raised is No method public static void creditcardsaved() was found in class controllers.payment play.exceptions.ActionNotFoundException: Action payment.creditcardsaved not found at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:447) at play.mvc.ActionInvoker.invoke(ActionInvoker.java:76) at play.server.ServletWrapper$ServletInvocation.execute(ServletWrapper.java:472) at play.Invoker$Invocation.run(Invoker.java:187) at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:463) at play.Invoker.invokeInThread(Invoker.java:61) at play.server.ServletWrapper.service(ServletWrapper.java:113) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1016) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:639) at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1772) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563) Caused by: java.lang.Exception: No method public static void creditcardsaved() was found in class controllers.payment ... 32 more 错误播放- @67bi2d4oj 找不到payment.creditcardsaved操作 找不到操作 找不到Action payment.creditcardsaved。引发的错误是在类controllers.payment中找不到方法public static void creditcardsaved() play.exceptions.ActionNotFoundException:Action payment.creditcardsaved未找到 at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:447) atplay.mvc.ActionInvoker.invoke(ActionInvoker.java:76) atplay.server.ServletWrapper$ServletInvocation.execute(ServletWrapper.java:472) Invoker$Invocation.run(Invoker.java:187) at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:463) Invoker.invokeInThread(Invoker.java:61) at play.server.ServletWrapper.service(ServletWrapper.java:113) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:831) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:939) 位于com.ibm.ws.webcontainer.servlet.ServletWrapper.HandlerRequest(ServletWrapper.java:502) 位于com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.HandlerRequest(ServletWrapperImpl.java:179) 位于com.ibm.ws.webcontainer.webapp.webapp.handleRequest(webapp.java:3826) 位于com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) 位于com.ibm.ws.webcontainer.webcontainer.handleRequest(webcontainer.java:931) 位于com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) 位于com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) 位于com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445) 位于com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301)上 位于com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275) 位于com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determinationextchannel(SSLConnectionLink.java:1016) 位于com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:639) 位于com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1772) 在com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted上(AioReadCompletionListener.java:165) 位于com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 位于com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 位于com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 位于com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 位于com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 位于com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 位于com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563) 原因:java.lang.Exception:在类controllers.payment中找不到方法public static void creditcardsaved() ... 32多
检查您的路由文件。您可能会忘记删除其中的操作。

请确保您的视图也没有引用creditcardsaved()。查找像@{payment.creditcardsaved()}这样的标记。此外,Play非常擅长的一件事是在浏览器中返回有用的错误消息。如果你能找到这是失败的网页,它会告诉你正确的方向。如果您仍然需要帮助,也可以发布该信息。

是否删除了某个操作?你是说控制器上的方法?这个问题需要更多的细节才能得到很好的回答。你是从什么开始的?你做了什么?你期待什么?确切的错误消息是什么,以及它死在哪一行?然后在运行它之前一定要玩干净。它还可以解决一些问题。我想玩增量编译有一些问题。 ERROR play - @67bi2d4oj payment.creditcardsaved action not found Action not found Action payment.creditcardsaved could not be found. Error raised is No method public static void creditcardsaved() was found in class controllers.payment play.exceptions.ActionNotFoundException: Action payment.creditcardsaved not found at play.mvc.ActionInvoker.getActionMethod(ActionInvoker.java:447) at play.mvc.ActionInvoker.invoke(ActionInvoker.java:76) at play.server.ServletWrapper$ServletInvocation.execute(ServletWrapper.java:472) at play.Invoker$Invocation.run(Invoker.java:187) at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:463) at play.Invoker.invokeInThread(Invoker.java:61) at play.server.ServletWrapper.service(ServletWrapper.java:113) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1657) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:939) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3826) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:445) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:504) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:301) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:275) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1016) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:639) at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1772) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1563) Caused by: java.lang.Exception: No method public static void creditcardsaved() was found in class controllers.payment ... 32 more