java.lang.IllegalArgumentException:servlet 映射中的 <url-pattern> 无效
Posted
技术标签:
【中文标题】java.lang.IllegalArgumentException:servlet 映射中的 <url-pattern> 无效【英文标题】:java.lang.IllegalArgumentException: Invalid <url-pattern> in servlet mapping 【发布时间】:2010-09-06 19:19:01 【问题描述】:<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
的 sn-p。 URL 模式 *NEXTEVENT*
在启动时抛出
java.lang.IllegalArgumentException: servlet 映射中的
无效
如果有人能提示错误,我们将不胜感激。
【问题讨论】:
【参考方案1】:<url-pattern>*NEXTEVENT*</url-pattern>
网址格式无效。它可以以星号结尾或以星号开头(表示文件扩展名映射)。
url-pattern 规范:
以“/”字符开头并以“/*”结尾的字符串 后缀用于路径映射。 以“*.”前缀开头的字符串用作扩展名 映射。 仅包含“/”字符的字符串表示“默认” 应用程序的 servlet。在这个 如果 servlet 路径是请求 URI 减去上下文路径和 路径信息为空。 所有其他字符串仅用于完全匹配。
有关详细信息,请参阅Java Servlet Specification 版本 3.1 的第 12.2 节。
【讨论】:
这里是 servlet 映射的一个很好的解释:javapapers.com/servlet/what-is-servlet-mapping【参考方案2】:可以实现的解决方法是添加一个 servlet 过滤器来进行 URL 重写,例如 将 NEXTEVENT 重写为 /NEXTEVENT/(NEXTEVENT 之前的那个)/(NEXTEVENT 之后的那个)或类似的东西。
【讨论】:
以上是关于java.lang.IllegalArgumentException:servlet 映射中的 <url-pattern> 无效的主要内容,如果未能解决你的问题,请参考以下文章