0

GRAILS は初めてですが、単純なアプリを作成し、Tomcat にデプロイしようとしています。

次を使用してアプリを実行すると:

grails prod run-app

すべて正常に動作します。ただし、warファイルにビルドすると

grails prod war

次に、war パッケージを tomcat サーバーにアップロードするか、直接実行します。

java -Dgrails.env=prod -jar build\lib\app.war

次に、最初はすべて問題ないように見えるこの奇妙な動作が発生しますが、インデックス以外のアクションのリンクをクリックするたびに、404 エラーが発生します。例えば

     webapp:8080/employee           WORKS
     webapp:8080/employee/index     WORKS
     webapp:8080/employee/show/1    404 error
     webapp:8080/department         WORKS
     webapp:8080/department/show/1  404 error

上記の例では、webapp:8080/employee/show/1 がリストされ、インデックス内のテーブルからリンクされているため、確実に見つかるはずです。

環境をテストまたは開発に移動しても、Tomcatで実行するか直接実行するかに関係なく、実行中のwarファイルからのフィードバックが見つからないように見えるため、その根底にたどり着くのに非常に苦労しています。ログファイルや標準出力には何もありません。

ここに私のUrlMappingsがあります

package generico

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?(.$format)?"{
            constraints {
                // apply constraints here
            }
        }

        // "/"(view:"/index")
        "/"(controller:"employee", action:"index")
        "500"(view:'/error')
        "404"(view:'/notFound')
    }
}

繰り返しますが、どの環境でも「grails run-app」を実行すると、すべてが正常に機能します。

助けていただければ幸いです。ありがとう。

4

2 に答える 2

0

Grails 3.2.2 でも同じ問題が発生しています。

「/」を読み込めません。名前空間を使用しているため、マッピングは次のようになります

"/"(namespace: 'corp', controller: 'index', action: 'index')

com.example.corp.IndexController {
  static namespace = 'corp'
  def index() {)
}

grails run-app を使用すると、どの環境でもすべてが正しく機能しますが、war して実行すると、エラー ページが表示されます。

于 2016-10-30T20:36:53.730 に答える