java.lang.IllegalArgumentException:<url-pattern> inválido no mapeamento de servlet
-
09-06-2019 - |
Pergunta
<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>
Acima está o trecho do Tomcat web.xml
.O padrão de URL *NEXTEVENT*
em lançamentos iniciais
java.lang.IllegalArgumentException:<url-pattern> inválido no mapeamento de servlet
Ficaremos muito gratos se alguém puder sugerir o erro.
Solução
<url-pattern>*NEXTEVENT*</url-pattern>
O padrão de URL não é válido.Ele pode terminar com um asterisco ou começar com um (para indicar um mapeamento de extensão de arquivo).
A especificação do padrão de URL:
- Uma string começando com um caractere '/' e terminando com um sufixo '/*' é usada para o mapeamento de caminho.
- Uma string começando com um '*.' O prefixo é usado como um mapeamento de extensão.
- Uma sequência que contém apenas o caractere '/' indica o servlet "padrão" do aplicativo.Nesse caso, o caminho do servlet é a solicitação URI menos o caminho do contexto e as informações do caminho são nulas.
- Todas as outras strings são usadas apenas para correspondências exatas.
Consulte a seção 12.2 do Especificação de servlet Java Versão 3.1 para mais detalhes.
Outras dicas
Uma solução alternativa que pode conseguir isso é adicionar um filtro de servlet para reescrever URL, por exemplo.reescrever PRÓXIMO EVENTO para /NEXTEVENTO/(aquele antes do NEXTEVENT)/(aquele após NEXTEVENT) ou algo semelhante.