Grails default '/' mappatura controller non risolvere correttamente
-
21-09-2019 - |
Domanda
Questo è stato mi guida oggi pazzo. Dal momento che l'aggiornamento a Grails 1.2 e Weblogic 10.3 la mappatura radice di default per "/" smesso di funzionare. Ecco quello che ho ...
Ho questa mappatura URL:
"/"(controller:"IGive", action:"index" )
Ho un regolatore di nome IGiveController con una chiusura index
def index = {
render "foo"
}
Quando vado alla mia applicazione in esecuzione in Tomcat embedded e Pontile con http: // localhost: 8080 / myContext / ottengo "foo" beni restituiti. Ma quando costruisco una guerra e distribuire in WebLogic 10.3 ho un 404.
I declassato a Grails 1.1.2 e ancora non ha funzionato su Weblogic 10.3, ma l'errore è stato più descrittivo
Could not open ServletContext resource [/WEB-INF/grails-app/views/index.gsp]
Così sembra come se fosse completamente ignorando la mia Mapping URL "/", ma altri mapping di URL che sono più profonde stanno lavorando. Eventuali indizi ??
Soluzione
Credo che questo sia più legato al Weblogic - sto vedendo lo stesso su Weblogic 9.2 - ma non su Tomcat o Jetty. Non ha colpito la mia UrlMapping:
"/"(controller: 'home', action: 'index')
Credo che Weblogic è essere intelligente e conversione / -.> Index.gsp che poi torna come 404
C'è una soluzione un po 'brutto - basta aggiungere una mappatura in questo modo:
"/index.gsp"(controller: 'home', action: 'index')
e che sembra fare il trucco. Qualcuno ha un modo migliore per risolvere questo problema ???
Altri suggerimenti
Si potrebbe essere correlato a un Grails 1.2 bug. Vedere graal-5609 e questo filo in Grails forum. E 'fissato in 1.2.1. Sembra che 1.2 ha introdotto alcuni bug di regressione con urlMappings ...