[tomcat] web.xml

Bom dia.

Outra dúvida surgiu: como colocar mais de uma aplicação no web.xml?

Com uma aplicação setada, roda bonitinho, mas não sei como editar o arquivo para que eu possa executar todas as aplicações que estão na minha pasta dentro de webapps.

Eu tentei ler o exemplo na pasta ‘examples’, mas não consegui entender bulhufas do xml :frowning:

O meu atual arquivo está assime funciona beleza:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

    <!-- Indica ao Tomcat as Servlets da nossa aplicacao -->
    
    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>HelloWorld</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name> 
        <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping>
    
   <session-config>
        <session-timeout>30</session-timeout> <!-- 30 minutes -->
    </session-config>

</web-app>

Como eu faria para adicionar mais X aplicações aqui?

Agradetados adiancimentos :mrgreen:

Uma aplicacao tem que ficar em contexto diferente, nao da para compartilhar o mesmo web.xml

Se voce quiser outros servelts, eh soh criar tantas tags “servlet-name” e “servlet-mapping” quanto forem necessarias.

Rafael

Certo, me expressei mal.

Mas então, eu já tentei fazer isso, mas não rolou :frowning:

Da algum erro? ou simplesmente nao funciona?

Rafael

Dá aquele erro que não encontrou o servlet.

Eu fiz assim:

<servlet></servlet>
<servlet-mapping></servlet-mapping>

<servlet></servlet>
<servlet-mapping></servlet-mapping>

É correto assim?

Pelo DTD, sim…

Quando voce coloca 2, nenhum funciona, ou somente algum dos dois nao funciona? no caso de apenas algum nao funcionar, poderia ser algum problema no mapping, ou path invalido da classe do servlet… algo assim… o que o log do tomcat acusa? ( ou somente da 404? )(

Rafael

NOP,

tem que set

<servlet></servlet>
<servlet></servlet>
<servlet></servlet>

<servlet-mapping></servlet-mapping>
<servlet-mapping></servlet-mapping>
<servlet-mapping></servlet-mapping>
<servlet-mapping></servlet-mapping>

Explicacaozinha rapida do porque disso: quando vc define um DTD, vc diz que tal elemento no XML pode ter tal, tal e tal filho - por exemplo, x, y e z. O problema eh que a spec do DTD diz que eles tem que estar nessa exata ordem - devido a uma otimizacao na validacao… assim o parser pode saber que, depois que entrou o elemento y, ele nao precisa mais se preocupar com o x, e depois do z, nao precisa mais tomar conta do x nem do y.

Não funcionou … e antes quando só tinha um servlet funcionava ok …

Minhas pastas estão assim:

webapps
   testes
      web-inf
         web.xml
            classes
                helloworld ( com o .java e .class )
                sessionid  ( com o .java e .class )

Sendo assim, minha chamada no web.xml está correta, não? Copiando o <servlet> do helloworld para sessionid e fazendo o mesmo com <servlet-mapping>, só substituindo o nome por SessionID, não é?

Kra, posta o código do seu web.xml que fica mais fácil.

Um abraço :wink:

A útlima edição:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 

<web-app> 

    <!-- Indica ao Tomcat as Servlets da nossa aplicacao --> 
    
    <servlet> 
        <servlet-name>HelloWorld</servlet-name> 
        <servlet-class>HelloWorld</servlet-class> 
    </servlet>  

    <servlet> 
        <servlet-name>SessionID</servlet-name> 
        <servlet-class>SessionID</servlet-class> 
    </servlet>
    
    <servlet-mapping> 
        <servlet-name>HelloWorld</servlet-name> 
        <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping> 
    
    <servlet-mapping> 
        <servlet-name>SessionID</servlet-name> 
        <url-pattern>/SessionID</url-pattern> 
    </servlet-mapping>
    
   <session-config> 
        <session-timeout>30</session-timeout> <!-- 30 minutes --> 
    </session-config> 

</web-app>

So uma dica vc está colocando no web.xml dentro das tags o nome dos .class exatamente iguais, inclusive respeitando as letras maiusculas e minusculas ???

Caso não seja isso, manda exatamente como esta o seu web.xml.

:smiley:

hehe estou sim cara

o web.xml está ai em cima :smiley:

Nossa desencana gente … obrigado pela ajuda. Mas agora o tomcat nem está encontrando a pasta ‘testes’ … e eu nem mechi em nada que mudasse isso :cry: :cry: :cry: