Acertando os caminhos uma app web

Pessoal tenho uma app web estruturada assim:
No dir raiz da app, criei uma pasta, digamos que se chama subsite.
Na pasta subsite, há uma página jsp, digamos paginterna.jsp.
Nessa pagina, tem um form, cujo action é MeuServlet, que está mapeado assim:

<servlet-mapping> <servlet-name>MeuServlet</servlet-name> <url-pattern>/MeuServlet</url-pattern> </servlet-mapping>
Acontece que se eu faço action=“MeuServlet” dá o seguinte erro:

 The requested resource (/meucontexto/subsite/MeuServlet) is not available.

E se eu coloco action="/MeuServlet" vai para a url http://localhost:8084/MeuServlet (sem o contexto) e tb não funciona!
Se eu coloco action="…/MeuServlet" o servlet é executado, mas como ele redireciona para a mesma pagina (paginterna.jsp) ela é mostrada sem o css (que está no dir raiz da app).
Como é que eu saio desse enrosco?
Valeu.

Como você mapeou este servlet no web.xml?

Lipe,

Tá lá em cima, mas eu repito:

<servlet-mapping>
     <servlet-name>MeuServlet</servlet-name>
     <url-pattern>/MeuServlet</url-pattern>
   </servlet-mapping>

Ou não era isso que vc perguntou?

Javinha, deve ter alguma outra coisa errada na sua configuracao, ou entao voce esta esquecendo algo (como o nome do contexto, por exemplo). Veja, fiz um teste simples aqui, com um servlet que escreve uma msg na tela. O web.xml ficou assim:


<web-app>
    <servlet>
		<servlet-name>teste</servlet-name>
		<servlet-class>pacote.SuperServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
    	<servlet-name>teste</servlet-name>
    	<url-pattern>/Teste</url-pattern>
    </servlet-mapping>
</web-app>

e a configuracao do meu contexto no Tomcat esta assim:

<Context path="/foo" docBase="c:/tmp/TesteServlet"/>

Logo, o acesso eh assim:

http://localhost:8080/foo/Teste

e funciona ok.

Rafael

Rafael,
meu context.xml é assim:

<?xml version="1.0" encoding="UTF-8"?>
&lt;Context path="/cooperedit"&gt;
   &lt;Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="org.gjt.mm.mysql.Driver"
          connectionURL="jdbc:mysql://localhost/editor"
         connectionName="teste" connectionPassword="teste"
              userTable="usuarios" userNameCol="nome" userCredCol="senha"
          userRoleTable="papeisdosusuarios" roleNameCol="papel" /&gt;
   
   &lt;Logger className="org.apache.catalina.logger.FileLogger" prefix="cooperedit." suffix=".log" timestamp="true"/&gt;
&lt;/Context&gt;

Uso o tomcat do netbeans, e esse context.xml foi gerado automaticamente (eu só criei o elemento realm). No server.xml só tem um contexto configurado:

&lt;Context path="" docBase="C:\Arquivos de programas\netbeans-4.0\nb4.0\jakarta-tomcat-5.0.28\webapps\ROOT" debug="0"/&gt;

O estranho é que não encontro um diretorio onde a minha app esteja instalada no disco, nem nada na documentação do netbeans sobre isso. Existe a possibilidade do netbeans estar fazendo algum tipo de “deploy virtual” e a minha app estar sendo executada com subapp de ROOT, e por isso eu não estar enxergando o meu diretorio raiz?
Como corrigir isso?
Valeu.

Entao, de acordo com isso, o nome do teu contexto eh “/cooperedit”. Logo, as imagens devem estar na forma “/cooperedit/images/xxx.gif”, ou entao usar caminhos relativos, na forma “…/…/images/xxx.gif”.

Se voce esta tendo problemas com a maneira do netbeans trabalhar com isso, pq voce simplesmente nao larga de mao de usar os wizards dele e configura o Tomcat voce mesmo? E simples de fazer e voce deixa de ficar tao dependente da IDE.

Rafael

Tens toda razão. O netbeans faz umas coisas esquisitas com o tomcat. Estou baixando uma versão independente para instalar…
Brigadim pela atenção.