2010-02-18 11 views
5

Come si può avere un'applicazione Grails e altri servlet definiti nel proprio web.xml?Accesso al secondo servlet quando Grails è configurato in web.xml

Voglio averlo in modo che alcuni pattern di URL vengano gestiti da un servlet mentre tutti gli altri sono gestiti da Sitemesh/Grails.

La configurazione predefinita di web.xml generato da graal è:

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

Ho poi aggiunto la configurazione web.xml per il mio 2 ° 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> 

Ma la di cui sopra non permettimi di accedere al mio servlet non grails (con l'url: domain.com/hello.tpoints) e provando a farmi un 404. So che i file di classe del servlet sono distribuiti con la guerra perché esistono in WEB-INF/directory delle classi.

risposta

0

È necessario assegnare al servlet Grails uno specifico url-pattern nella mappatura, ad es. /grails/* o *.grails o così (sei libero di scegliere), in modo che solo l'URL corrispondente a questi modelli richiami il servlet di Grails.

Problemi correlati