Приложение успешно развернуто на Tomcat, но ошибка 404 - PullRequest
3 голосов
/ 08 декабря 2010

Я развернул, после некоторой борьбы, веб-приложение на (удаленном) сервере Tomcat 5.5 (Linux под ключ).Это веб-приложение GoogleWebToolkit с бэкэндом Java.

С просмотром журналов все прошло хорошо.Приложение / manager также показывает «running = true» в моем новом приложении.

Но проблема в том, что переход на URL / myApp дает 404. То, что я сделал до сих пор, безуспешно:

  • Удостоверился, что он работает локально с использованием Eclipse, там прекрасно работает
  • Проверен логи на сервере развертывания, он успешно загружает Spring и некоторые другие библиотеки.Фактически, он показывает те же сообщения, что и при запуске его в хост-режиме в Eclipse
  • Приложения / manager, / host-manager, / admin работают нормально.
  • Перезагрузка приложения в/ manager также говорит «ОК»
  • У меня указан файл приветствия, тот, который на самом деле находится там, прямой удар, который также дает 404
  • Я использую хост по умолчанию ('localhost'), простонапример, приложения / manager, / host-manager и / admin *
  • Много поисков в интернете, но безрезультатно.
  • Пробовал другой сервер Tomcat (v6) (мой домашний Ubuntuкоробка, на которой я хочу развернуть, это VPS где-то в сети), и там он просто работает ... Переустановите VPS?

Любые советы о том, как это исправить, выясните, чтопроблема, или что может вызвать это?Могут ли быть конфликты?в каталоге $ CATALINA_HOME / webapps работает другое приложение, может ли это конфликтовать с myApp, который находится в том же каталоге, развернутом?

Ниже приведен мой server.xml

<?xml version="1.0" encoding="UTF-8"?>
<Server>
  <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <GlobalNamingResources>
   <Environment
    name="simpleValue"
    type="java.lang.Integer"
    value="30"/>
   <Resource
     auth="Container"
     description="User database that can be updated and saved"
     name="UserDatabase"
     type="org.apache.catalina.UserDatabase"
     pathname="conf/tomcat-users.xml"
     factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
  </GlobalNamingResources>
  <Service
  name="Catalina">
   <Connector
    port="8009"
    redirectPort="8443"
    address="127.0.0.1"
    protocol="AJP/1.3">
   </Connector>
   <Engine
    defaultHost="localhost"
    name="Catalina">
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
     <Host
      appBase="webapps"
      name="localhost">
     </Host>
   </Engine>
 </Service>
</Server>

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

В папке HTTPD / conf.d должны быть различные файлы .conf, которые содержат записи о настроенных веб-приложениях. Либо вы можете создать новый файл .conf, либо добавить запись ProxyPass в существующий файл conf. Добавление записи ProxyPass может маршрутизировать полученный запрос к коту. например ProxyPass /myApp/ ajp://localhost:8009/myApp/. Tomcat должен прослушивать порт AJP Connector 8009 для приведенного выше примера.

2 голосов
/ 30 марта 2011

Итак, перед Tomcat стоит экземпляр Apache.Некоторые / все запросы к Apache направляются на порт Tomcat AJP 8009. Предполагая, что этот мост Apache-Tomcat работает нормально, и, таким образом, фокусируясь только на развернутом приложении, вам, вероятно, необходимо добавить некоторые директивы JKMount в файл httpd.conf Apacheчтобы убедиться, что запросы к /myApp url действительно пересылаются в Tomcat.В противном случае они обслуживаются Apache, что означает, что вы получите ошибку 404, когда эти ресурсы не найдены.

...