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> 

Arriba está el fragmento de Tomcat de web.xml. El patrón de URL *NEXTEVENT* en el arranque lanzajava.lang.IllegalArgumentException: No válido en <url-pattern> correlación de servlet

java.lang.IllegalArgumentException: no válida < url-pattern> en la correlación de servlet

Se apreciará grandemente si alguien puede hacer alusión a que el error.

Respuesta

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

El patrón de URL no es válido. Puede terminar en un asterisco o comenzar con uno (para indicar una asignación de extensión de archivo).

La especificación url-pattern:

  • Una cadena que comienza con un carácter ‘/’ y termina con un ‘/ *’ sufijo se utiliza para la asignación de ruta.
  • Una cadena que comience con un prefijo '*.' Se utiliza como una extensión asignación.
  • Una cadena que contiene solo el carácter '/' indica el servlet "predeterminado" de la aplicación. En este caso , la ruta del servlet es la solicitud URI menos la ruta de contexto y la información de ruta es nula.
  • Todas las demás cadenas se usan solo para coincidencias exactas.

Véase la sección 12.2 de la Java Servlet Specification Versión 3.1 para más detalles.

+3

Aquí hay una buena explicación de las asignaciones de servlets: http://javapapers.com/servlet/what-is-servlet-mapping/ – ripper234

1

Una solución que puede lograr eso es agregar un filtro de servlet para hacer reescrituras de URL, p. volver a escribir NEXTEVENT a/NEXTEVENT/(el anterior al NEXTEVENT)/ (el siguiente a NEXTEVENT) o algo similar.

Cuestiones relacionadas