RemoteActionの処理を実行時に次のようなエラーに遭遇しました。
Method 'getAccount' not found on controller S1AccountController. Check spelling, method exists, and/or method is RemoteAction annotated.
S1AccountControllerクラスのgetAccountメソッドが見つかりません..というエラーです。
このクラスもこのメソッドもちゃんと用意されているし、別の処理で実際に動いているのに。。と思ったのですが、原因は引数にセットされている値でした。
今回エラーが出た時の処理は、レコードIDを条件に対象レコードを取得するという処理です。
このレコードIDはAngularJSの『$routeParams.id』をつかって取得しようとしました。
$routeParams.idは値が存在しない場合、NULLでもブランク値でもなく『undefined』がセットされます。この『undefined』をRemoteActionの引数として渡そうとしたことでエラーが発生していました。
次のように値の存在判定をして、『undefined』の場合はNULLをセットするようにしておけば、このエラーを回避できます。
RemoteActionの処理でnot found on controllerというエラーが発生した場合はこのあたりもチェックしてみると良さそうです。