38
<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> 

위의 잘못된 톰캣의 web.xml의 조각입니다. 시작의 URL 패턴 *NEXTEVENT*java.lang.IllegalArgumentException가 : 서블릿 매핑

예외 : IllegalArgumentException를 throw : 누군가가 오류 암시 할 수있는 경우 서블릿 매핑에 잘못된 < URL 패턴>이

그것은 대단히 감사합니다.

답변

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

URL 패턴이 유효하지 않습니다. 별표로 끝나거나 하나씩 시작할 수 있습니다 (파일 확장자 매핑을 나타 내기 위해).

URL입니다 패턴 사양 : 문자열은 '/'문자로 시작하고 '/ *' 접미사로 끝나는

  • 경로 매핑에 사용됩니다.
  • '*.'접두사로 시작하는 문자열은 확장자로 사용됩니다.
  • '/'문자 만 포함 된 문자열은 응용 프로그램의 "기본" 서블릿을 나타냅니다. 이 경우 서블릿 경로는 URI에서 컨텍스트 경로를 뺀 경로 정보이고 경로 정보는 null입니다.
  • 다른 모든 문자열은 일치 검색에만 사용됩니다. 자세한 내용은 Java Servlet Specification 버전 3.1의

항을 참조 12.2.

+3

다음은 서블릿 매핑에 대한 좋은 설명입니다. http://javapapers.com/servlet/what-is-servlet-mapping/ – ripper234

1

서블릿 필터를 추가하여 URL 다시 쓰기 작업을 수행 할 수 있습니다. NEXTEVENT ~/NEXTEVENT/(NEXTEVENT 이전)/ (NEXTEVENT 이후의 것) 또는 이와 유사한 내용을 다시 작성하십시오.