gpt4 book ai didi

grails - 在 web.xml 中配置 grails 时访问第二个 servlet

转载 作者:行者123 更新时间:2023-12-02 13:46:20 25 4
gpt4 key购买 nike

如何在 web.xml 中定义 grails 应用程序和其他 servlet?

我想拥有它,以便一些 url 模式由 servlet 处理,而所有其他模式由 Sitemesh/grails 处理。

grails 生成的 web.xml 的默认配置是:

<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 为我的第二个 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>

但是上面不允许我访问我的非 grails servlet(使用 url:domain.com/hello.tpoints)并尝试它让我得到一个 404。我知道 servlet 的类文件与 war 一起部署,因为它们存在于 WEB-INF/classes 目录中。

最佳答案

您需要为 Grails servlet 提供更具体的 url-pattern在映射中,例如/grails/**.grails左右(您可以自由选择),以便只有与这些模式匹配的 URL 才能调用 Grails servlet。

关于grails - 在 web.xml 中配置 grails 时访问第二个 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com