2010-01-16 14 views
9

To mnie doprowadza do szału dzisiaj. Od uaktualnienia do Grails 1.2 i Weblogic 10.3 domyślne mapowanie roota dla "/" przestało działać. Oto co mam ...Domyślne mapowanie kontrolera Grails '/' nie rozwiązuje się prawidłowo

mam to odwzorowanie URL:

"/"(controller:"IGive", action:"index") 

Mam kontroler o nazwie IGiveController z zamknięcia indeksu

def index = { 
    render "foo" 
} 

Kiedy idę do mojej aplikacji działającej w osadzony Tomcat i Jetty z http://localhost:8080/mycontext/ Otrzymuję "foo" zwróconą własność. Ale kiedy zbudować wojny i wdrożyć do WebLogic 10.3 dostaję 404.

I zdegradowany do Grails 1.1.2 i nadal nie działa na Weblogic 10.3 ale błąd był bardziej opisowy

Could not open ServletContext resource [/WEB-INF/grails-app/views/index.gsp] 

Wygląda więc na to, że całkowicie ignoruję moje mapowanie URL dla "/", ale działają inne mapowania adresów URL, które są głębsze. Jakieś wskazówki?

Odpowiedz

8

Myślę, że jest to bardziej związane z Weblogic - widzę to samo na Weblogic 9.2 - ale nie na Tomcat czy Jetty. Nie uderzyłam UrlMapping:

"/"(controller: 'home', action: 'index') 

myślę WebLogic jest istota inteligentna i konwersji/-> index.gsp który następnie wraca jako 404.

Jest nieco brzydki obejście - wystarczy dodać mapowanie w ten sposób:

"/index.gsp"(controller: 'home', action: 'index') 

i wydaje się, że to wystarczy. Ktoś ma lepszy sposób to naprawić ???

+0

dzięki, stary, wow, właśnie zrobiłeś mój dzień! Zarejestrowałem błąd w Jirie późniejszy dzień dzisiejszy – mbrevoort

+0

To obejście działało również w przypadku wdrożenia wildfly8 .war, które w przeciwnym razie powodowałoby, że index.gsp nie został znaleziony podczas uzyskiwania dostępu do root'a: '" /index.gsp"view: "/ index") –

1

Może to być związane z błędem Grails 1.2. Zobacz GRAILS-5609 i to thread na forum Grails. Zostało to ustalone w 1.2.1. Wygląda na to, że 1.2 wprowadza pewne błędy regresji z UrlMappings ...