Ajuda com o struts (erro de iniciante)

11 respostas
pauloperes

Olá a todos,

Comecei a aprender struts, estou usando o netbeans, segui um exemplo do site do struts para configurar ele no nb, quem quiser ver (http://struts.apache.org/faqs/netbeans40.html)

Estou tentando executar um mapeamento, um action, na hora de executar ele me diz que num acha a classe vejam o meu struts-config.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<!--
  Default configuration file for examples application.
  Each module also has its own struts-config under: /WEB-INF/$MODULE/
  @version $Revision: 1.9 $ $Date: 2004-09-07 03:50:06 +0100 (Tue, 07 Sep 2004) $
-->
<struts-config>
  <action-mappings>
    <action  path="/teste" type="TesteSimples">
        <forward name="exemplo" path="/exemplo.jsp"/>
    </action>
  </action-mappings>
  <message-resources parameter="MessageResources" />
</struts-config>

e agora vejam minha estrutura de diretórios

Valeu,

Paulo Henrique

11 Respostas

D

modifique o arquivo TesteSimples.java adicionando um package.
modifique a estrutura das classes criando o diretorio.

Depois disso levante o tomcat e reze para funcionar

Um Abraço,

Dennis

pauloperes

Dennis,

Acho que estou com pouca fé, rezei um monte e não deu certo(hehehe), veja o que eu fiz:

package web_struts.webapp;


import javax.servlet.http.*;
import org.apache.struts.action.*;

public class TesteSimples extends Action {
    public ActionForward execute(ActionMapping map, ActionForm form, 
            HttpServletRequest request, HttpServletResponse response) throws Exception {
         System.out.println("Executando uma action no struts");
         return map.findForward("exemplo");
    }
}

E no struts-config.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<!--
  Default configuration file for examples application.
  Each module also has its own struts-config under: /WEB-INF/$MODULE/
  @version $Revision: 1.9 $ $Date: 2004-09-07 03:50:06 +0100 (Tue, 07 Sep 2004) $
-->
<struts-config>
  <action-mappings>
    <action  path="/teste" type="web_struts.webapp.TesteSimples">
        <forward name="exemplo" path="/exemplo.jsp"/>
    </action>
  </action-mappings>
  <message-resources parameter="MessageResources" />
</struts-config>

No build ele foi criado corretamente os diretórios, está tudo certo aparentemente.

Valeu,

Paulo Henrique

D

Paulo,

Provavelmente voce deve estar “compoucafé”.

Qual a mensagem que está apercendo no browser ?
Como está configurado o web.xml ?
Como estão as bibliotecas no lib ?
Como está a estrutura no tomcat ?

Dennis

pauloperes

Dennis,

Veja,

A msg que aparece no browser é http 404

Arquivo web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	 version="2.4">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
	<welcome-file>
            index.jsp
        </welcome-file>
    </welcome-file-list>
</web-app>

As libs estão ok!

Quanto a estrutura do tomcat, vc se refere os diretórios da minha aplicação?

Valeu,
Paulo

vivi_grieco

Tire o arquivo exemplo.jsp da pasta WEB-INF, coloque junto com o index.jsp
:slight_smile:

pauloperes

Pessoal,

Me digam uma coisa, quando eu trabalho com o struts, é preciso fazer o mapeamento somente no struts-config.xml ou eu tenho que fazer também no web.xml.

Valeu,
Paulo

D

sim é necessário alterar o web.xml para informar quem vai responder as requisições

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
....
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

Como você chama sua aplicação pelo browser ?

uma excelente referencia é o struts-blank.war .

Um Abraço,

Dennis

pauloperes

Dennis,

Valeu pela ajuda, funcionou corretamente.

Paulo

passos

Seu melhor amigo:
:arrow: User and Developer Guides

O que você quer esta em:
:arrow: Configuring Applications

D

Paulo,

O que você alterou para funcionar ?

Isso é interessante, pois outra pessoa pode ter o mesmo problema.

Disponha sempre …

Dennis

pauloperes

Dennis,

O que eu fiz para funcionar foi alterar o arquivo web.xml, deixando desta forma:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
	 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	 version="2.4">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
	<welcome-file>
            index.jsp
        </welcome-file>
    </welcome-file-list>
     <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

Valeu,

Paulo

Criado 13 de julho de 2005
Ultima resposta 13 de jul. de 2005
Respostas 11
Participantes 4