Приложение Tomcat 9 Spring с использованием контекстного пути WebApplicationInitializer не работает - PullRequest
0 голосов
/ 08 июня 2019

У меня есть приложение Spring 4.3.6, которое я перевожу с сервера Tomcat 8.5 на сервер Tomcat 9.0.20 на другом хосте Linux.

Все отлично работает на сервере TC 8.5.

docBase содержит статический html и файл war.Война распаковывается во время запуска, и журнал показывает «Инициализация Spring FrameworkServlet« диспетчер »».Я могу просматривать статический контент, но при просмотре тестовой страницы веб-приложения я получаю 404 - см. URL:

Статический контент

Веб-приложениеТестовая страница

Вот некоторые из файлов catalina.log:

08-Jun-2019 18:54:09.548 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/home/carpenterdev/tanglemydata.dev/tanglemydataapp.war]
08-Jun-2019 18:54:19.968 INFO [main] org.apache.catalina.core.ApplicationContext.log 1 Spring WebApplicationInitializers detected on classpath
08-Jun-2019 18:54:20.212 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
08-Jun-2019 18:54:20.216 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
08-Jun-2019 18:54:37.082 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet 'dispatcher'
08-Jun-2019 18:54:37.285 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/home/carpenterdev/tanglemydata.dev/tanglemydataapp.war] has finished in [27,736] ms
08-Jun-2019 18:54:37.287 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/home/carpenterdev/tanglemydata.dev/assets]
08-Jun-2019 18:54:37.337 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/home/carpenterdev/tanglemydata.dev/assets] has finished in [50] ms
08-Jun-2019 18:54:37.363 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
08-Jun-2019 18:54:37.437 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
08-Jun-2019 18:54:37.505 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["https-jsse-nio-127.0.0.1-8443"]
08-Jun-2019 18:54:37.564 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [71,758] milliseconds

Вот мой элемент Host:

    <Host name="tanglemydata.dev" appBase="/home/carpenterdev/tanglemydata.dev" unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
       <Context path="" reloadable="true" docBase="/home/carpenterdev/tanglemydata.dev" /> 
    </Host>

Вот как выглядит моя docBase:

enter image description here

Спасибо за помощь!

Боб

1 Ответ

0 голосов
/ 11 июня 2019

Я ОП, и решил проблему.

Проблема была вызвана тем, что имя_сервера в элементе <VirtualHost> в файле httpd.conf в Apache2 не соответствует имени, указанному в элементе <Host> в файле Tomcat server.xml.

httpd.conf и server.xml должны использовать точно такое же имя, которое зарегистрировано в DNS. В моем исходном сообщении вы видите, что в файле server.xml я указал:

<Host name="tanglemydata.dev"

Но httpd.conf получает его от DNS и выглядит так:

ServerName tanglemydata.carpenterdev.com

Итак, изменение в sever.xml было таким:

<Host name="tanglemydata.carpenterdev.com"

Плюс, в server.xml я добавил псевдоним:

<Alias>tanglemydata.dev</Alias>

Надеюсь, это поможет другим.

Bob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...