2011-08-15 9 views
2

アプリケーションのワークフローを変更しました。これにより、以前に使用されていた4つのアクションが削除されました。コードがそのアクションを参照していないときに、アクションが見つからないのはなぜですか?

私はもうcreditcardsaved、achsaved、および他のいくつかのアクションを持っていないように変更しました。私のログファイルに

は、私は他の3つのアクションが同じ問題にログインしていない

 
"payment.creditcardsaved action not found" 

エラーを取得します。私は自分のプロジェクトを調査しましたが、私はどこでもクレジットカードによる行動を参照していません。私はまだそのテンプレートをレンダリングしますが、renderTemplate( "Payment/CreditCardSaved.html"、args)で直接レンダリングします。

は、以前はコントローラ

public static void creditcardsaved() {} 

その後、支払いを保存creditcardsaved()アクションを呼び出しpublic static void SaveCreditCard保存方法における方法がありました。どのビューからもアクションへの参照はありませんでした。

私はもう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 

+0

アクションを削除しましたか?あなたのコントローラのメソッドを意味しますか?この質問には、より詳細な回答が必要です。あなたは何から始めましたか?あなたは何をした?あなたは何を期待しましたか?正確なエラーメッセージとそれが死んだ行は何ですか? –

答えて

2

ルートファイルを確認してください。そこからアクションを削除するのを忘れるかもしれません。

+0

私のルートファイルにありません。 –

+0

その後、実行する前にきれいに再生します。それはまたいくつかの問題を解決するかもしれません。再生増分コンパイルにはいくつかの問題があります。 – James

0

あなたのビューがcreditcardsaved()を参照していないことを確認してください。 @ {payment.creditcardsaved()}のようなタグを探します。また、Playで非常に面白いことの1つは、ブラウザに役立つエラーメッセージを返すことです。これが失敗したページを見つけることができれば、正しい方向に向けるでしょう。まだ助けが必要な場合は、その情報も投稿してください。

関連する問題