2010-02-18 5 views
5

Comment pouvez-vous avoir une application grails ainsi que d'autres servlets définis dans votre fichier web.xml?Accès à la deuxième servlet lorsque grails est configuré dans web.xml

Je veux l'avoir pour que certains motifs d'URL soient gérés par une servlet alors que tous les autres sont gérés par Sitemesh/grails.

La configuration par défaut de web.xml générée par Grails est:

<filter-mapping> 
    <filter-name>charEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>grailsWebRequest</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>sitemesh</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>urlMapping</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

<servlet> 
    <servlet-name>grails</servlet-name> 
    <servlet-class>org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

J'ai ensuite ajouté la configuration web.xml pour mon 2ème servlet:

<servlet> 
    <servlet-name>Tracepoints</servlet-name> 
    <servlet-class>com.mydomain.Tracepoints</servlet-class> 
    <init-param> 
     <param-name>hostName</param-name> 
     <param-value>http://www.mydomain.com/</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Tracepoints</servlet-name> 
    <url-pattern>*.tpoints</url-pattern> 
</servlet-mapping> 

Mais pas ci-dessus permettez-moi d'accéder à mon servlet non grails (avec l'URL: domain.com/hello.tpoints) et d'essayer cela me donne un 404. Je sais que les fichiers de classe de la servlet sont déployés avec la guerre, car ils existent dans WEB-INF/répertoire des classes.

Répondre

0

Vous devez attribuer à la servlet Grails un url-pattern plus spécifique dans le mappage, par ex. /grails/* ou *.grails ou alors (vous êtes libre de choisir), de sorte que seule l'URL correspondant à ces modèles appelle la servlet Grails.

Questions connexes