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

时间:2008-08-25 19:56:38

标签: tomcat servlets web.xml illegalargumentexception servlet-mapping

<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映射中

如果有人能提示错误,我们将不胜感激。

2 个答案:

答案 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之后的那个)或类似的东西。