Доступ ко второму сервлету, когда grails настроен в web.xml - PullRequest
5 голосов
/ 18 февраля 2010

Как у вас может быть приложение grails, а также другие сервлеты, определенные в вашем файле web.xml?

Я хочу, чтобы некоторые шаблоны URL обрабатывались сервлетом, а все остальные - Sitemesh./grails.

Конфигурация по умолчанию для web.xml, сгенерированного grails:

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

Затем я добавил конфигурацию в web.xml для моего 2-го сервлета:

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

Но приведенное выше не позволяет мне получить доступ к моему сервлету non grails (с помощью url: domain.com/hello.tpoints), и при попытке получить 404. Я знаю, что файлы классов сервлета развернуты с помощьювойна, потому что они существуют в каталоге WEB-INF / classes.

1 Ответ

0 голосов
/ 18 февраля 2010

Вам нужно дать сервлету Grails более конкретный url-pattern в отображении, например /grails/* или *.grails или около того (вы можете выбирать), чтобы только URL, соответствующий этим шаблонам, вызывал сервлет Grails.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...