Foros del Web » Programación para mayores de 30 ;) » Java »

struts ----- no reconoce el do

Estas en el tema de struts ----- no reconoce el do en el foro de Java en Foros del Web. hola qué tal, tengo una aplicaciòn (de struts) que la hago correr con el tomcat, cuando escribo en el url en la carpeta de mi ...
  #1 (permalink)  
Antiguo 17/03/2006, 17:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 3 meses
Puntos: 0
struts ----- no reconoce el do

hola qué tal, tengo una aplicaciòn (de struts) que la hago correr con el tomcat, cuando escribo en el url
en la carpeta de mi aplicación MiAccion.do, me aparece lo siguiente:

Estado HTTP 404 - Invalid path was requested

type Informe de estado
mensaje Invalid path was requested
descripción El recurso requerido (Invalid path was requested) no está disponible.

Apache Tomcat/5.5.12


Parece que no se llama a mi acciòn que programè,
ya configurè todo:
struts-config, web.xml, etc etc......y tengo los directorios bien acomodados
Y en el directorio lib tengo las dependencias jar.....Van todas las librerìas???
Què puedo hacer???????????
sALUDOS, GRACIAS
  #2 (permalink)  
Antiguo 17/03/2006, 21:24
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
mmmmmmmmm, revisa el struts-config, checa que los fowards esten bien hechos y que este relaciona correctamente con el action.......

pues el error que te esta mandando el tomcat es que no esta encontrando ningun action con ese nombre, sooooooooo revisale bien......
  #3 (permalink)  
Antiguo 18/03/2006, 15:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 3 meses
Puntos: 0
sobre el do en struts

Hola què tal, revisè la acciòn y el mapeo, y sigue dando lo mismo. Estos son los archivos

\"struts-config.xml\"

<struts-config>
<action-mappings>
<action path=\"/kaixo\" type=\"MisClases.EditKaixoAction\" name=\"\" scope=\"request\" validate=\"false\">
<forward name=\"success\" path=\"/kaixo.jsp\" />
</action>
</action-mappings>
</struts-config>


\"web.xml\"

<web-app>
<servlet>
<servlet-name>MiAplic</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>host</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>port</param-name>
<param-value>8080</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MiAplic</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>


\"EdiKaixoAcction.java\"

public class IniciarAction extends Action{

public ActionForward perform(ActionMapping mapping,ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {

// Extrae los atributos que se necesitan
Locale locale = getLocale(request);
//a la siguiente le agreguè el paràmetro request

MessageResources messages = getResources(request);

HttpSession session = request.getSession();

String action = request.getParameter(\"action\");

ActionErrors errors = null;

try {

if (action == null)
action = \"Create\";

return (mapping.findForward(\"success\"));

} catch (Exception e)
{
e.printStackTrace(System.out);
errors = new ActionErrors();
errors.add(\"action\",new ActionError (\"action.perform.carga.error\"));
saveErrors(request,errors);
return (mapping.findForward(\"failure\"));
}
}

}
Con el tomcat, me meto en la carpeta MiAplic, dentro de wepapps, escribo kaixo.do y me queda algo asì
http:://localhost:8080/MiAplic/kaixo.do

Saludos
Y gracias
  #4 (permalink)  
Antiguo 21/03/2006, 11:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 3 meses
Puntos: 0
problema del do resuelto

Hola què tal, finalmente anda el do. Resulta ser que aparentemente mi clase, la de la acciòn, no tenìa agregada la librerìa struts-api.jar del directorio commons del directorio del tomcat. La agreguè a esa clase como externa y no la agreguè al directorio lib de WEB-INF.
Este jar tiene el paquete javax.servlet........
Yo antes referenciaba otra librerias que ademàs la ponìa en el lib de WEB-INF. Era javax.servlet.jar
Ademàs agregué al WEB-INF las dependencias dts´s, tld´s y otros jar
Ahora anda tanto cuando uno hace click en el jsp de inicio o cuando escribo la acciòn.do
Saludos

posdata: a veces leìa versiones viejas de mi acciòn.class, pues no llegaban a compilarse (por errores mìos) con lo cual me demorè màs en resolver el problema.
  #5 (permalink)  
Antiguo 22/03/2006, 01:32
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
javax.servlet.* son los paquetes de la especificacion de servlets y NO tendrias que incluirlos en tu aplicacion. La especificacion dice que el contenedor de servlets que uses Tomcat, Resin, OC4J... ya deberia incluirlos por defecto así que no debes incluirlos o tendras problemas.
  #6 (permalink)  
Antiguo 26/03/2006, 13:07
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 3 meses
Puntos: 0
sobre el do

Hola GreenEyed, ok, no incluyo esas librerìas pero no puedo compilar la clase de la acciòn,, al menos desde eclipse. Esta clase usa clases del paquete javax.serlvlet..... Què puedo hacer al respecto, desde donde la compilo?
Saludos
  #7 (permalink)  
Antiguo 26/03/2006, 13:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 3 meses
Puntos: 0
ademàs....para resolver el do

reemplacè el mètodo de la acciòn "perform" (de versiones anteriores de struts) por "execute"....
Saludos
  #8 (permalink)  
Antiguo 26/03/2006, 13:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Hola,

Las clases javax.serlvlet.* las necesitas para compilar, y por eso debes tener el servlet.jar en el classpath para la compilacion. Pero en tiempo de ejecucion, el contenedor de servlets ya las incluye por defecto, asi que es mejor que no las pongas, por que podrias producir un conflicto.

Pensé que hablabas unicamente de ejecución, ya que es en ese momento cuando yo las pongo en WEB-INF/lib .
  #9 (permalink)  
Antiguo 27/03/2006, 06:45
 
Fecha de Ingreso: febrero-2006
Mensajes: 57
Antigüedad: 18 años, 3 meses
Puntos: 0
sobre javax.servlet...

Hola, a ver si entendì bien......vos decìs que las agregue al classpath para que pueda compilar, pero al momento de correr, no agregarla al web/inf?
Saludos
  #10 (permalink)  
Antiguo 28/03/2006, 14:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Exacto

En compilacion las necesitas poner explicitas por que el compilador no las trae por defecto.
Al ejecutar la aplicacion web, el contenedor web las trae por defecto asi que no las has de poner.
  #11 (permalink)  
Antiguo 17/08/2006, 16:48
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 6 meses
Puntos: 0
Exclamación Que Hago ?????

TENGO ESTOS ARCHIVOS:

accionBasica.java

// Java Document

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.util.*;


public final class accionBasica extends Action {

public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
//request.setAttribute("usuario","Ejemplo");
return (mapping.findForward("primera"));
}

}

struts.config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
<action-mappings>
<action path="/accionBasica" type="accionBasica" scope="request" validate="false">
<forward name="primera" path="/indice-ejemplos.jsp"/>
</action>
</action-mappings>
</struts-config>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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>


<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<description>configuracion del servlet action</description>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>



<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

</web-app>


Me base en un ejemplo de Internet y un libro ke tengo, leia y releia y aun asi no funcionaba, buscando en este thread sustitui el PERFORM x el EXECUTE
y funcionó......

Entonces las referencias que tengo no me sirven ya que yo baje el STRUTS en su version mas actual y los ejemplos han de estar basados en STRUTS de versiones mas viejas.... lo preocupante es ke el libro solo dice que vaya al sitio de struts y lo baje pero no dice ke version esta usando.

Mi preocupacion ahora es ke segun vaya avanzando en esto de STRUTS y pueda encontrarme problemas como este,,,, no se ke hacer

En los ejemplos por ejemplo llaman a unos .TLD que el struts ke tengo ni existen
  #12 (permalink)  
Antiguo 17/08/2006, 17:08
Avatar de xlugo2002  
Fecha de Ingreso: noviembre-2002
Ubicación: Puebla, México
Mensajes: 474
Antigüedad: 21 años, 6 meses
Puntos: 0
puts

Leyendo la documentacion del struts que tengo me encontré :

4.4 Action Classes
The Action class defines two methods that could be executed depending on your servlet environment:

public ActionForward execute(ActionMapping mapping,
ActionForm form,
ServletRequest request,
ServletResponse response)
throws Exception;

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception;


struts-documentation.war dentro de Struts parece que tiene todo respectoa struts, supongo ke ese archivo de ayuda debe solucionar mi problema, es asi ???
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:06.