Как установить контекстный путь в Tomcat 8 - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть файл войны с именем FooBar.war, теперь я хочу установить путь к контексту "/", указывающий на это веб-приложение. Это означает, что пользователи могут получить доступ к веб-приложению через URL: localhost:8080/ Для этого я добавляю файл с именем ROOT.xml в <catalina_home>/conf/Catalina/localhost/ с содержимым

<Context docBase="/opt/mywebapps/FooBar" path="" reloadable="true" />

И я также положил FooBar.war в папку /opt/mywebapps/ затем установите все разрешения для этой папки:

chmod -R 777 /opt/mywebapps/

После запуска сервера Tomcat сервер не может развернуть файл war:

1-Apr-2019 11:33:36.211 SEVERE [localhost-startStop-1] org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@6023aae1]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4932)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5067)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/opt/mywebapps/FooBar] is not valid
    at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:748)
    at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 13 more

Если у вас есть идеи, как это исправить, пожалуйста, помогите мне.

1 Ответ

1 голос
/ 01 апреля 2019
<Context docBase="/opt/mywebapps/FooBar" path="" reloadable="true" />

И я также поместил FooBar.war в папку / opt / mywebapps /

Обратите внимание, что теперь у вас есть /opt/mywebapps/FooBar.war, а вы ссылаетесь на /opt/mywebapps/FooBar. (обратите внимание на разницу в .war)

Поскольку вы находитесь не в собственной папке веб-приложений Tomcat, где (при конфигурации по умолчанию) WAR-файлы будут автоматически разархивированы, Tomcat просто сигнализирует о том, что настроенное вами местоположение просто не существует.

...