デフォルトの Grails '/' コントローラ マッピングが正しく解決されない
-
21-09-2019 - |
質問
今日はこれが私を夢中にさせました。Grails 1.2 および Weblogic 10.3 にアップグレードしてから、「/」のデフォルトのルート マッピングが機能しなくなってしまいました。私が持っているものはこれです...
この URL マッピングがあります。
"/"(controller:"IGive", action:"index" )
インデックスクロージャーを持つIGiveControllerという名前のコントローラーがあります
def index = {
render "foo"
}
埋め込み Tomcat と Jetty で実行されているアプリケーションにアクセスすると、 http://localhost:8080/mycontext/ 「foo」プロパティが返されました。しかし、war をビルドして Weblogic 10.3 にデプロイすると、404 が発生します。
Grails 1.1.2 にダウングレードしましたが、Weblogic 10.3 では動作しませんでしたが、エラーはより説明的でした
Could not open ServletContext resource [/WEB-INF/grails-app/views/index.gsp]
したがって、「/」の URL マッピングは完全に無視されているようですが、より深い他の URL マッピングは機能しています。手がかりはある??
解決
私は、これは、WebLogicに複数の関連だと思います。私UrlMappingをヒットしません。
"/"(controller: 'home', action: 'index')
私は、WebLogicは、スマートであり、かつ/ A変換されると思います - 。その後、404として戻ってくる> index.gspを
少し醜い回避策はあり - ちょうどこのようにマッピングを追加します:
"/index.gsp"(controller: 'home', action: 'index')
、それはトリックを行うようです。誰もがこの???を解決するためのより良い方法を持っている。
他のヒント
Grails 1.2 のバグに関連している可能性があります。見る GRAILS-5609 この 糸 Grailsフォーラムで。1.2.1で修正されました。1.2 では UrlMappings に関する回帰バグがいくつか導入されたようです...