いくつかのドメインモデル、コントローラー、およびそれらのサービスを備えた単純な grails(2.0.3) アプリケーションがあります。保存して別のマシンで実行しようとすると、奇妙な動作が発生します。
インデックス ページに生成されたコントローラー リンクは正しいように見えますが、クリックすると、localhost:8080/appname/controller/action ではなく 404 で localhost:8080/appname/appname にリダイレクトされます。
しかし、「grails generate-domain-class」を使用してモデルを手動で再作成しようとすると、コントローラーを生成してサービス クラスを作成すると、正常に動作します。移動後に一部のプロジェクト データが失われたか、プロジェクト フォルダ以外の場所に保存されているようです。
作業中のプロジェクトを 1 番目のマシンで保存し、2 番目のマシンで再度開くにはどうすればよいですか? 私のアプリケーションは、IDE を使用せずに、コマンド ラインとテキスト エディターだけで作成されます。
編集
プロジェクトを別のマシンに移動せずに、不要なコードをすべて投稿せずにこの動作を再現しようとした後、同じ結果になりました。
注入されたサービスを使用するコントローラーを作成するとき(これを読んだ後):
class BookController {
def bookService
def index() {
redirect(action: "list", params: params)
}
def list() {
def result = bookService.list(params)
if(!result.error) {
return [ bookInstanceList: result.bookInstanceList,
bookInstanceTotal: result.bookInstanceTotal ]
}
flash.message = g.message(code: result.error.code, args: result.error.args)
redirect( url: resource(dir:'') )
}
}
インデックス ページで生成されたコントローラー URL にアクセスし、404 で localhost:8080/appname/appname を取得しようとしました。grails コンソールにエラー メッセージは表示されません。