Недопустимый <url-pattern> в отображении сервлета, если для него задана пустая строка

Чтобы иметь сервлет домашней страницы, который будет генерировать контент домашней страницы, я оставил url-pattern пустым в отображении сервлета, которое AFAIK сопоставляет с корневым контекстом, скажем, как mysite.com/ или http://{host}:{ порт}/ MySite/

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">

<display-name>My site</display-name>

<servlet>
  <servlet-name>controller</servlet-name>
  <servlet-class>com.mysite.control.MainController</servlet-class>
  <!-- Load this servlet at server startup time -->
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>controller</servlet-name>
  <url-pattern></url-pattern>
</servlet-mapping>  

Выше приведен полный файл web.xml (кроме веб-приложения с корневым элементом). Но Tomcat 7.0.26 выдает следующую ошибку при запуске, из-за которой война не разворачивается.

SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mysite]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
    ...
Caused by: java.lang.IllegalArgumentException: Invalid <url-pattern>  in servlet mapping
    at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:3208)
...

Примечание 1: Это не весенний проект, это чистый проект сервлета 3.0, и на данный момент он имеет конфигурацию web.xml.

Примечание 2: класс com.mysite.control.MainController существует.

Как я могу это исправить? Я знаю, что welcome-файл - это опция, имитирующая домашнюю страницу, но это не оптимально, и я бы предпочел исправить это. Это ошибка Tomcat 7.0.26 или какая-то другая проблема?

1 ответ

Решение

Это ошибка Tomcat, исправленная с 7.0.28. Пожалуйста, обратитесь к этой странице. Поэтому вы должны обновить Tomcat.

Другие вопросы по тегам