2012-05-07 16 views
0

私は単純な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コンソールにエラーメッセージは表示されません。

+0

多すぎない場合は、再生手順やコードを教えてください。これを試してチェックしたいですか? –

+0

最後に私はこれを解決することができました。コントローラーメソッドの最後の文字列がこのような不思議な動作を引き起こしました。そのため、アプリケーションをあるマシンから別のマシンに移動すると、間接的に問題が発生しました。 1番目のマシンのデータベーステーブルでは、空ではなく、アプリケーションはその行をリッチではありませんでした。あなたの時間をありがとう! – karejscha

答えて

0

私は、プロジェクトを別のマシンに移動した後にgrailsの問題が発生したときに役立つことを発見しました。最初に実行する

grails upgrade 

プロジェクトをアップグレードするかどうかを確認するメッセージが表示されたら「はい」と答えます。これを実行すると、移動していない可能性のある設定ファイルがすべて書き換えられます。 2番目は実行する

grails clean 

これは、古いシステムから新しいシステムに移動した可能性のあるコンパイルされたクラスを削除します。

+0

返信いただきありがとうございます。残念ながら、それは問題を解決しませんでした。 私はすでに[this](http://grails.1312388.n4.nabble.com/nondeterministic-behavior-of-g-link-and-g-createLink-td1341333.html)の記事を読んだ後、この解決策を試しました。これは非常によく似ていますが、 'grails upgrade'と' grails clean'の両方を行っても、私はまだこの "double appname mode"を得ています。 – karejscha

関連する問題