私は単純なgrails(2.0.3)アプリケーションをいくつかのドメインモデル、コントローラ、サービスとともに用意しています。私はそれを保存し、別のマシン上で実行しようとすると、私はいくつかの奇妙な動作を取得します。既存のgrailsプロジェクトを開く
インデックスページの生成されたコントローラのリンクは正しいように見えますが、クリックすると、localhost:8080/appname/controller/actionの代わりに404のlocalhost:8080/appname/appnameにリダイレクトされます。
しかし、 "grails generate-domain-class"を使って手動でモデルを再作成しようとすると、コントローラを生成してサービスクラスを作成しても問題ありません。いくつかのプロジェクトデータは移動後に失われたり、おそらくプロジェクトフォルダの外に保存されているようです。
作業中のプロジェクトを1台目のマシンに保存して2台目のマシンで再び開くには、何が必要ですか?私のアプリケーションはIDEを使わずに、コマンドラインとテキストエディタだけで作成されます。
EDIT
すべての不要なコードを掲示せずにこの現象を再現しようとした後、別のマシンにプロジェクトを移動することなく同じです。
私は(thisを読んだ後に)注入されたサービスを使用するコントローラの作成:
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と8080/APPNAME/APPNAMEをgrailsコンソールにエラーメッセージは表示されません。
多すぎない場合は、再生手順やコードを教えてください。これを試してチェックしたいですか? –
最後に私はこれを解決することができました。コントローラーメソッドの最後の文字列がこのような不思議な動作を引き起こしました。そのため、アプリケーションをあるマシンから別のマシンに移動すると、間接的に問題が発生しました。 1番目のマシンのデータベーステーブルでは、空ではなく、アプリケーションはその行をリッチではありませんでした。あなたの時間をありがとう! – karejscha