2010-06-27 19 views
5

Utilizzo Eclipse e posso far funzionare ciascuno dei miei servlet in modo indipendente (utilizzando HTTP Client per il test) tramite Eclipse. Ma il vero lavoro è farli lavorare allo stesso tempo.Distribuzione di più servlet su un singolo server Tomcat

Sto utilizzando Tomcat, ma non ho idea di come eseguire tutti e tre i servlet contemporaneamente. Sono tutti mappati correttamente nel file web.xml. Come posso distribuire questi da Eclipse?

risposta

10

Bene, è sufficiente mapparli tutti e 3 nello web.xml e distribuirli. Qui di seguito, un esempio web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <servlet> 
    <servlet-name>Servlet1</servlet-name> 
    <servlet-class>com.acme.Servlet1</servlet-class> 
    </servlet> 
    <servlet> 
    <servlet-name>Servlet2</servlet-name> 
    <servlet-class>com.acme.Servlet2</servlet-class> 
    </servlet> 
    <servlet> 
    <servlet-name>Servlet3</servlet-name> 
    <servlet-class>com.acme.Servlet3</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Servlet1</servlet-name> 
    <url-pattern>/path1/*</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
    <servlet-name>Servlet2</servlet-name> 
    <url-pattern>/path2/*</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
    <servlet-name>Servlet3</servlet-name> 
    <url-pattern>/path3/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

noti che i seguenti URL (supponendo mycontext è il contesto):

  • http://hostname:port/mycontext/path1/foo
  • http://hostname:port/mycontext/path1/bar?aparam=avalue
  • http://hostname:port/mycontext/path1

corrispondono al modello <url-pattern>/path1/*</url-pattern> (quindi non è necessario mapparli su/percorso1,/percorso1/*).

Se si utilizza Eclipse WTP, è possibile registrare Tomcat come Server e distribuire il progetto Web dinamico su di esso da Eclipse (tasto destro del mouse sul progetto e selezionare Esegui come> Esegui sul Server).

All'esterno di Eclipse, è necessario pacchettizzare l'applicazione come .war (il formato standard per un'applicazione Web) e distribuire questa guerra su Tomcat. Ci sono diversi modi per farlo, ma il modo più semplice è copiare la guerra in $TOMCAT_HOME/webapps.

+0

È fantastico e molto rapido! Non ho ancora lasciato il sito Web ancora! Comunque .. grazie .. Sono riuscito a eseguirli tutti da Eclipse, ma li distribuirò come archivio web per Tomcat. Grazie ancora! – arunjitsingh

1

se si desidera che il servlet per essere avviato senza alcuna richiesta viene inviata al server di aggiungere
< load-on-startup > N < load-on-startup/>

dove N = 1 2,32 ... nel <servlet> mapping

Problemi correlati