Domanda

Ho schierato, dopo qualche lotta, una web-app su un server (remoto) Tomcat 5.5 (chiavi in ??mano Linux viene fornito con quello). Si tratta di una web-app GoogleWebToolkit con un backend Java.

Osservando il log tutto è andato bene. L'applicazione / manager anche spettacoli 'esecuzione = true' sul mio nuovo app.

Ma il problema è, andare al / myApp url dà 404. Quello che ho fatto finora, senza alcun successo:

  • fatto in modo che lo fa funzionare a livello locale con Eclipse, funziona bene lì
  • Controllato i log sul server di distribuzione, viene caricato con successo primavera, e alcune altre librerie. In realtà, mostra gli stessi messaggi come quando l'eseguo in modalità hosted in Eclipse
  • Il / manager, / host-manager, / le applicazioni di amministrazione funzionano bene.
  • Ricaricare l'app sul / manager dice anche 'OK'
  • Ho un file di benvenuto specificato, uno che è in realtà lì, direttamente colpendo che dà anche 404
  • Io uso l'host di default ( 'localhost'), proprio come il / manager, / host-manager e / admin apps
  • Ha fatto un sacco di ricerca su internet, senza alcun risultato.
  • Ho provato un diverso Tomcat (v6) Server (mia casella di casa ubuntu, quello che voglio schierare su una qualche parte VPS in rete), e non vi funziona solo ... Reinstallare il VPS?

Eventuali suggerimenti su come risolvere questo problema, scoprire qual è il problema, o che cosa potrebbe causare questo? Ci può essere conflitti? c'è un'altra applicazione in esecuzione nel $ CATALINA_HOME / webapps dir, può in conflitto con myApp, che si trova nella stessa directory schierato?

Di seguito è riportato il mio 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>
È stato utile?

Soluzione

In modo da avere un'istanza di Apache seduto di fronte a Tomcat. Alcuni / tutte le richieste verso Apache vengono inoltrate alla porta Tomcat AJP 8009 Supponendo che questo ponte su Apache Tomcat sta funzionando bene, e, quindi, concentrandosi solo sulla vostra applicazione distribuita, probabilmente è necessario aggiungere alcune direttive JKMount nel file di httpd.conf di Apache, per assicurare che le richieste a /myApp url sono infatti inoltrati a Tomcat. In caso contrario, essi sono serviti da Apache, il che significa che si ottiene un errore 404 quando tali risorse non vengono trovati.

Altri suggerimenti

Il httpd / conf.d cartella dovrebbe avere vari file .conf che contiene le voci per quanto riguarda le applicazioni Web configurate. O è possibile creare un nuovo file .conf o aggiungere la voce ProxyPass a un file conf esistente. L'aggiunta di un percorso ProxyPass iscrizione può la richiesta ricevuta al Tomcat. per esempio. ProxyPass /myApp/ ajp://localhost:8009/myApp/. Tomcat dovrebbe essere in ascolto sulla porta AJP connettore 8009 per esempio di cui sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top