44
<servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>workflow.WDispatcher</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <url-pattern>*NEXTEVENT*</url-pattern>
</servlet-mapping>

以上是 Tomcat 的web.xml. *NEXTEVENT*启动时的 URL 模式抛出

java.lang.IllegalArgumentException:servlet 映射中的 <url-pattern> 无效

如果有人可以提示错误,将不胜感激。

4

2 回答 2

102
<url-pattern>*NEXTEVENT*</url-pattern>

URL 模式无效。它可以以星号结尾或以星号开头(表示文件扩展名映射)。

url 模式规范:

  • 以“/”字符开头并以“/*”后缀结尾的字符串用于路径映射。
  • 以“*”开头的字符串。前缀用作扩展映射。
  • 仅包含“/”字符的字符串表示应用程序的“默认”servlet。在这种情况下,servlet 路径是请求 URI 减去上下文路径,并且路径信息为空。
  • 所有其他字符串仅用于完全匹配。

有关详细信息,请参阅Java Servlet 规范版本 3.1 的第 12.2 节。

于 2008-08-25T20:04:47.157 回答
1

一种可以实现的解决方法是添加一个 servlet 过滤器来进行 URL 重写,例如将NEXTEVENT 重写到 /NEXTEVENT/ (NEXTEVENT 之前的那个)/(NEXTEVENT 之后的那个)或类似的东西。

于 2008-09-15T06:59:47.523 回答