java.lang.IllegalArgumentException:servlet映射中的<url-pattern>无效
<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
的片段。 启动时的URL模式*NEXTEVENT*
会引发
java.lang.IllegalArgumentException:servlet映射中的<url-pattern>无效
如果有人可以提示错误,将不胜感激。
<url-pattern>*NEXTEVENT*</url-pattern>
url格式无效。 它可以以星号结尾或以一个开头(表示文件扩展名映射)。
url模式规范:
- 以“/”字符开头并以“/ *”后缀结尾的string用于path映射。
- 以“*”开头的string 前缀被用作扩展映射。
- 只包含'/'字符的string表示应用程序的“默认”servlet。 在这种情况下,servletpath是请求URI减去上下文path,path信息为空。
- 所有其他string仅用于精确匹配。
有关更多详细信息,请参阅Java Servlet规范版本3.1的第12.2节。
一个可以实现的解决方法是添加一个servletfilter来进行URL重写,例如,将NEXTEVENT重写为/ NEXTEVENT / (NEXTEVENT之前的那个)/ (NEXTEVENT之后的那个)或类似的东西。