<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*
会抛出
java.lang.IllegalArgumentException:无效&lt; url-pattern&gt;在servlet映射中
如果有人能提示错误,我们将不胜感激。
答案 0 :(得分:93)
<url-pattern>*NEXTEVENT*</url-pattern>
网址格式无效。它可以以星号结尾或以1开头(表示文件扩展名映射)。
网址格式规范:
- 以“/”字符开头并以“/ *”结尾的字符串 后缀用于路径映射。
- 以'*。'前缀开头的字符串用作扩展名 映射。
- 仅包含'/'字符的字符串表示“默认” 应用程序的servlet。在这 case servlet路径是请求 URI减去上下文路径和 路径信息为空。
- 所有其他字符串仅用于完全匹配。
有关详细信息,请参阅Java Servlet Specification版本3.1的第12.2节。
答案 1 :(得分:1)
可以实现的解决方法是添加servlet过滤器来进行URL重写,例如 将 NEXTEVENT 重写为/ NEXTEVENT / (NEXTEVENT之前的那个)/ (NEXTEVENT之后的那个)或类似的东西。