Standard -Grals '/' Controller -Mapping, die nicht ordnungsgemäß auflösen
-
21-09-2019 - |
Frage
Dieser hat mich heute verrückt gemacht. Seit dem Upgrade auf Grails 1.2 und Weblogic 10.3 wurde die Standard -Root -Mapping für "/" nicht mehr funktioniert. Hier ist, was ich habe ...
Ich habe diese URL -Zuordnung:
"/"(controller:"IGive", action:"index" )
Ich habe einen Controller namens IgiveController mit einem Indexverschluss
def index = {
render "foo"
}
Wenn ich zu meiner Bewerbung gehe, die in dem eingebetteten Tomcat und Steg mit Läuf http: // localhost: 8080/mycontext/ Ich bekomme "Foo" zurückgegeben. Aber wenn ich einen Krieg aufbaue und in Weblogic 10.3 einsage, bekomme ich einen 404.
Ich stufte auf Grails 1.1.2 herab und es funktionierte immer noch nicht auf Weblogic 10.3, aber der Fehler war beschreibender
Could not open ServletContext resource [/WEB-INF/grails-app/views/index.gsp]
Es scheint also, als würde es meine URL -Mapping für "/" völlig ignorieren, aber andere URL -Zuordnungen, die tiefer sind, funktionieren. Irgendwelche Hinweise??
Lösung
Ich denke, das hängt eher mit Weblogic zusammen - ich sehe dasselbe auf Weblogic 9.2 - aber nicht auf Tomcat oder Steg. Treffe meine URLMapping nicht:
"/"(controller: 'home', action: 'index')
Ich denke, Weblogic ist intelligent und konvertieren / -> index.gsp, was dann als 404 zurückkommt.
Es gibt eine etwas hässliche Problemumgehung - fügen Sie einfach eine Kartierung wie folgt hinzu:
"/index.gsp"(controller: 'home', action: 'index')
Und das scheint den Trick zu tun. Hat jemand einen besseren Weg, dies zu beheben ???
Andere Tipps
Es kann mit einem Fehler von Grails 1.2 zusammenhängen. Sehen Grails-5609 und das Faden Im Grails Forum. Es ist in 1.2.1 fixiert. Es scheint, dass 1.2 einige Regressionsfehler mit UrlMappings eingeführt hat ...