2012-03-29 16 views
5

Potrzebuję użyć niektórych złączy, które w rzeczywistości są serwletami. Jak mogę to zrobić w Grails i co z plikiem web.xml? Jak skonfigurować adres URL serwletu?Jak używać serwletu w mojej aplikacji Grails?

Właściwie mam tutaj aplikację wiosenną i staram się przekonwertować ją na częściową aplikację Grails. W aplikacji źródłowej mam serwlet złączny, którego tutaj chcę użyć, ale mapowanie jest koniecznością wywołania serwletu w pliku GSP. Jak mogę to zrobić? Zasadniczo muszę wiedzieć, gdzie znajduje się plik xml w przypadku Grails.

+0

To pytanie jest zbyt deska, u trzeba zawęzić kwestionujesz bardziej szczegółowych część tego, co don nie rozumiesz, co próbowałeś. – Churk

+0

@Churk Dziękuję za odpowiedź, zredagowałem pytanie, aby było bardziej szczegółowe. –

Odpowiedz

8

aby pobrać plik web.xml, można uruchomić:

grails install-templates 

Następnie plik można znaleźć w:

<yourapp>/src/templates/war/web.xml 

Edytuj ten jak zwykle, aby dodać <servlet> i <servlet-mapping> sekcje, następnie wprowadź swój kod serwletu :

<yourapp>src/java/your/package/structure/WhateverServlet.java 

i powinno być dobrze iść

+0

Dziękuję, próbowałem tego, ale z jakiegoś powodu dostaję zasób 404 nie jest dostępny. Nie wiem dlaczego, i mapowanie jest absolutnie takie samo jak w mojej aplikacji wiosennej, gdzie to samo odwzorowanie działa idealnie. Struktura folderów jest taka sama. Wywołuję ten serwlet w javascript z mojej strony GSP. W rzeczywistości ta sama strona jest html w przypadku mojej starej wiosennej aplikacji. –

+0

Upewnij się, że umieściłeś mapowanie adresów URL swojego servletu przed serwletem dyspozytora grails – vishesh

-3

dobre wieści i złe wieści, a ja sam zadałem już to pytanie tutaj. Dzięki aplikacji wiosna można mieć wiele poziomów URI, takich jak domain.com/abc/def/efg/abc vs grails ma wiele problemów z niczego poza domain.com/controller/view. tutaj jest link do mojego oryginalnego pytania: Grails URL mapping cause error on GSP

Dobrą wiadomością jest to, że nie musisz zajmować się mapowaniem XML, grails robi to bez celu przez kontrolerów i widoki. Więc jesteś prawie ograniczony do domeny.com/YouController/YourView/SomeParamteres ... ale jeśli to wszystko czego potrzebujesz, wszystko co musisz zrobić, to stworzyć grails-app/Controller/SomethingController.groovy i automatycznie masz domenę.com/Coś

3

Jeśli jesteś w grails-plugin, to masz określonym miejscu w swoim *GrailsPlugin.groovy, gdzie robić takie rzeczy. Na przykład. Spójrz na automatycznie generowane zamknięcia:

def doWithWebDescriptor = { xml -> 
    [] 
} 

Tu można dodać niestandardowe konfiguracje serwletów:

def servlets = xml.'servlet' 
    servlets[servlets.size() - 1] + { 
     servlet { 
      'servlet-name'('yourName') 
      'servlet-class'('yourpackage.YourClass') 
     } 
    } 

    def mappings = xml.'servlet-mapping' 
    mappings[mappings.size() - 1] + { 
     'servlet-mapping' { 
      'servlet-name'('yourName') 
      'url-pattern'('/yourPattern/*') 
     } 
    } 
Powiązane problemy