2010-02-18 11 views
5

¿Cómo puede tener una aplicación de grial así como otros servlets definidos en su web.xml?Accediendo al segundo servlet cuando grails está configurado en web.xml

Quiero tenerlo para que algunos patrones de url sean manejados por un servlet mientras que los demás son manejados por Sitemesh/grails.

La configuración por defecto de web.xml generada por griales es:

<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> 

Luego añade a la configuración web.xml de mi segundo 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> 

Pero el anterior no Permitirme acceder a mi servlet non grails (con el url: domain.com/hello.tpoints) y al intentarlo obtengo un 404. Sé que los archivos de clases del servlet se implementan con la guerra porque existen en WEB-INF/directorio de clases.

Respuesta

0

Debe dar al servlet de Grails un url-pattern más específico en la asignación, p. /grails/* o *.grails o menos (usted es libre de elegir), de modo que solo la URL que coincida con esos patrones invoque el servlet de Grails.

Cuestiones relacionadas