2015-03-17 16 views
6

Ho un'applicazione Web completamente funzionale ospitata su un server. Funziona perfettamente con localhost ma quando avvio Tomcat 7.0.59 sul server e provo a raggiungere l'applicazione dal mio computer locale, carica html e css e quindi interrompe quando provo a colpire il primo Servlet Controller:Perché il mio web.xml distribuito da Tomcat non viene letto dal server host?

function loadRows(fullAccess) 
{ 
    var review_ID = location.search.split('review=')[1]; 

    $.ajax({ 
      url : "LoginController", 
      type : "post", 
      data : { 
       "reviewID" : review_ID 
      }, 
      ... 

Quindi sono abbastanza sicuro che non sta leggendo correttamente web.xml, che è dove sono definiti i miei mapping Servlet/Servlet.

Questo è il mio web.xml

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

    <display-name>MVCDemo</display-name> 
    <servlet> 
    <servlet-name>LoginController</servlet-name> 
    <servlet-class>mvcdemo.controllers.LoginController</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>LoginController</servlet-name> 
    <url-pattern>/LoginController</url-pattern> 
    </servlet-mapping> 
    <servlet> 
    <servlet-name>UpdateController</servlet-name> 
    <servlet-class>mvcdemo.controllers.UpdateController</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>UpdateController</servlet-name> 
    <url-pattern>/UpdateController</url-pattern> 
    </servlet-mapping> 
    <servlet> 
    <servlet-name>SubmitController</servlet-name> 
    <servlet-class>mvcdemo.controllers.SubmitController</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>SubmitController</servlet-name> 
    <url-pattern>/SubmitController</url-pattern> 
    </servlet-mapping> 
</web-app> 

Ho anche provato ad aggiungere

<welcome-file-list> 
    <welcome-file>foo.jsp</welcome-file> 
</welcome-file-list> 

Per vedere se l'applicazione avrebbe rotto quando si cerca di trovare foo.jsp e non trovarlo (il file vero e proprio è chiamato index.jsp), ma index.jsp è ancora in fase di rendering in modo che web.xml non venga caricato in modo chiaro. Qualche idea, perché? Grazie!

+0

Riavvia il browser e riprova con foo.jsp. Dovresti ricevere un errore. – CKing

+0

Qualche errore in 'catalina.out'? –

+0

catalina.out ha: "' Errore: Impossibile trovare o caricare classe principale org.apache.catalina.startup.Bootstrap errore: Impossibile trovare o caricare classe principale org.apache.catalina.startup.Bootstrap' " –

risposta

0

Web.XML

The web.xml file is derived from the Servlet specification, and contains information used to deploy and configure the components of your web applications. When configuring Tomcat for the first time, this is where you can define servlet mappings for central components such as JSP. Within Tomcat, this file functions in the same way as described in the Servlet specification. The only divergence in Tomcat's handling of this file is that a user has the option of utilizing TOMCAT-HOME/conf/web.xml to define default values for all contexts. If this method is utilized, Tomcat will use TOMCAT-HOME/conf/web.xml as a base configuration, which can be overwritten by application-specific WEB-INF/web.xml files.

fonte: https://www.mulesoft.com/tcat/tomcat-configuration

ho tink nel tuo caso Tomcat non sovrascrive il WEB-INF/web.xml ed è alla ricerca nella cartella conf.

0

Provare a importare il progetto e avere un occhio durante la copia di tutti i file nel nuovo progetto.

Fondamentalmente è necessario sovrascrivere il descrittore di distribuzione web.xml.