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

Urgente: Problema con un Servlet

Estas en el tema de Urgente: Problema con un Servlet en el foro de Java en Foros del Web. Hola a todos. Tengo el siguiente problema: Tengo un formulario jsp (de muchos que he creado) que al hacer submit debería llamar a un servlet ...
  #1 (permalink)  
Antiguo 11/12/2004, 16:22
 
Fecha de Ingreso: abril-2003
Mensajes: 64
Antigüedad: 21 años, 6 meses
Puntos: 0
Información Urgente: Problema con un Servlet

Hola a todos.
Tengo el siguiente problema:

Tengo un formulario jsp (de muchos que he creado) que al hacer submit debería llamar a un servlet llamado registrodpDemoFlash, en el action del form tengo ese nombre, exactamente igual.
El servlet está en el directorio classes y el archivo web.xml está así (como todos mis servlets:

<servlet>
<servlet-name>registrodpDemoFlash</servlet-name>
<servlet-class>registrodpDemoFlash</servlet-class>
</servlet>

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

el servlet compila perfectamente.

pero cuando hago submit en el formulario me dice: registrodpDemoFlash
error 404
Archivo no encontrado
Por supuesto el servidor lo he reiniciado

Por favor ayuda, estoy me está desesperando

José
  #2 (permalink)  
Antiguo 11/12/2004, 19:21
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oviedo
Mensajes: 99
Antigüedad: 20 años
Puntos: 1
Dices que el servlet está en el directorio web-inf/classes. Pero lo has puesto tu ahi o lo has extendido con alguna herramienta como deployment?
Mira a ver en el codigo de tu servlet si has puesto algun package, si es asi tendrías que copiar el servlet en el directorio que has montado en el package y cambiar tu descriptor:
<servlet>
<servlet-name>registrodpDemoFlash</servlet-name>
<servlet-class>elpackagequehaspuesto.registrodpDemoFlash</servlet-class>
</servlet>
  #3 (permalink)  
Antiguo 11/12/2004, 20:15
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 4 meses
Puntos: 10
Quiza el formulario este en un JSP dentro de alguna carpeta en el servidor, y al poner en el action el nombre del servlet a secas, entonces intenta llamar a la URL con el directorio incluido.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #4 (permalink)  
Antiguo 11/12/2004, 20:31
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 10 meses
Puntos: 1
Hola, el error 404, significa que no encuentra el recurso, en este caso el servlet.
Ahora, dudo de que este mal deployado tu servlet, es decir de que este mal el paquete en la configutacion del servlet, ya que si no te sale ningun error al deploy de tu aplicacion, entonces significa que el servlet si se esta registrando dentro de la web application.

Yo mas me voy, por la forma com lo llamas al servlet desde tu página JSP, nos podrias mostrar el código de como pones el nombre del servlet en el action del form ????

ya que, por la forma como has configurado su mapping del servlet, tu servlet esta ubicado en la raìz, y efectivamente como dice goncafa, ten en cuenta donde esta ubicada tu pàgina que llama al serlvet.
__________________
Saludos,

H@C..
  #5 (permalink)  
Antiguo 13/12/2004, 07:30
 
Fecha de Ingreso: abril-2003
Mensajes: 64
Antigüedad: 21 años, 6 meses
Puntos: 0
El action del form es: <form name=agregar action="registrodpDemoFlash">

todos mis jsp estan en el raiz de mi web site, y todos mis servlets estan en \WEB-INF\Classes, no uso ningun paquete extraño al que estoy usando en mis otros servlets.

lo que hago siempre es: creo el servlet tomando alguna plantilla, le cambio el nombre, le realizo los cambios, lo compilo, lo agrego al web.xml, y lo llamo del formulario, no entiendo por que hace esto.

Efectivamente 404 es por que no encuentra el recurso, pero estoy haciendo exactamente lo mismo que mis otros jsp cuando llaman a un servlet.

Ayuda please.

PD: Si quieren les puedo enviar el código
  #6 (permalink)  
Antiguo 13/12/2004, 13:13
 
Fecha de Ingreso: abril-2003
Mensajes: 64
Antigüedad: 21 años, 6 meses
Puntos: 0
La instrucción completa en el action es:
<form action="registrodpDemoFlash" method="post" name="Agregar" onSubmit="return ValidarForma(this)">

El servlet está en el directorio Classes (como todos mis servlets)
y el codigo es:

import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class registrodpDemoFlash extends HttpServlet {

Connection Conexion;
Statement Sentencia2;
ResultSet Resultado2=null;
Statement Sentencia3;
ResultSet Resultado3=null;
Statement Sentencia4;
ResultSet Resultado4=null;

public void init( ServletConfig conf ) throws ServletException {
super.init( conf );
try {
// ************************************************** ************************
// Declaración de Variables Principales para la conexión con la Base de Datos
// ************************************************** ************************
Class.forName("com.mysql.jdbc.Driver").newInstance (); // Driver de conexión con MySQL
Conexion = DriverManager.getConnection("jdbc:mysql://localhost/salese?user=&password=");
Sentencia2 = Conexion.createStatement(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);
Sentencia3 = Conexion.createStatement(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);
Sentencia4 = Conexion.createStatement(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);
} catch (Exception e) { }
}

public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
// Si la petición entra por aquí la reenviamos al método doPost()
doPost( req,res );
}

public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {

// Recuperación de los datos del correo
String nombre = req.getParameter( "nombre" );
String apellido = req.getParameter( "apellido" );
String telefonoemp = req.getParameter( "telefonoemp" );
String email = req.getParameter( "email" );
String empresa = req.getParameter( "empresa" );

String diaInicio = req.getParameter("diaInicio");
String mesInicio = req.getParameter("mesInicio");
String anoInicio = req.getParameter("anoInicio");

String diaFinal = req.getParameter("diaFinal");
String mesFinal = req.getParameter("mesFinal");
String anoFinal = req.getParameter("anoFinal");

String login = req.getParameter("login");
String password = req.getParameter("password");

String consulta = "";
String consulta2 = "";
String tipo1="0";
String tipo2="0";
int validar = 2;
String campo1="";
String prueba="KO";

String asunto = "";
String mensaje = "";
String tipo = "";
String smtpServer = "localhost";
String to = "";
String from = "";
String subject = "";
String body = "";

String cod ="";

Timestamp fereg = new Timestamp(System.currentTimeMillis());

try {
Class.forName("com.mysql.jdbc.Driver").newInstance (); // Driver de conexión con MySQL
Conexion = DriverManager.getConnection("jdbc:mysql://localhost/salese?user=&password=");
Sentencia2 = Conexion.createStatement(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);
Sentencia3 = Conexion.createStatement(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);
Sentencia4 = Conexion.createStatement(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);

consulta = "select login,password from registro where login='"+login+"' or password = '"+ password+"'";
Resultado2 = Sentencia2.executeQuery(consulta);
if (Resultado2.next()) {
if (login.equals(Resultado2.getString("login"))){
tipo1="1";
validar=0;
}
if (password.equals(Resultado2.getString("password")) ) {
tipo2="1";
validar=0;
}
}
Resultado2.close();
Sentencia2.close();

consulta = "select login,password from demobki where login='"+login+"' or password = '"+ password+"'";
Resultado2 = Sentencia2.executeQuery(consulta);
if (Resultado2.next()) {
if (login.equals(Resultado2.getString("login"))){
tipo1="1";
validar=0;
}
if (password.equals(Resultado2.getString("password")) ) {
tipo2="1";
validar=0;
}
}
Resultado2.close();
Sentencia2.close();

if (validar==2) {
consulta = "insert into registro (nombre,apellido,telefonoemp,email,empresa,login,p assword,fechaInicio,FechaLimite,flag,fecharegistro ) values('"+nombre+"','"+apellido+"','"+telefonoemp+ "','"+email+"','"+empresa+"','"+login+"','"+passwo rd+"','"+diaInicio+"/"+mesInicio+"/"+anoInicio+"','"+diaFinal+"/"+mesFinal+"/"+anoFinal+"','0','"+fereg+"')";
Sentencia3.executeUpdate(consulta);
Sentencia3.close();

consulta = "select codigo from demoBki where login='"+ login + "' and passoword='"+ password +"'";
Resultado2=Sentencia4.executeQuery(consulta);
Resultado2.last();
cod = Resultado2.getString("codigo");
Sentencia4.close();


}
} catch (Exception e) { }

if (validar==0) {
res.sendRedirect("registrodpFlashval.jsp?nombre='" +nombre+"'&apellido='"+apellido+"'&telefonoemp='"+ telefonoemp+"'&email='"+email+"'&empresa='"+empres a+"'&login='"+login+"'&password='"+password+"'&dia Inicio="+diaInicio+"&mesInicio="+mesInicio+"&anoIn icio="+anoInicio+"&diaFinal="+diaFinal+"&mesFinal= "+mesFinal+"&anoFinal="+anoFinal+"&error1="+tipo1+ "&error2="+tipo2);
}

else {

res.sendRedirect("registrodpFlashconf.jsp?codigo=" +cod);
}
}

public void destroy() {
try {
// ******************************************
// Cierre de la conexión con la base de datos
// ******************************************
Sentencia3.close();
Conexion.close();
} catch (Exception e) { }
}
}
  #7 (permalink)  
Antiguo 13/12/2004, 17:20
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 10 meses
Puntos: 1
Ok, vemos que desde tu pagina lo llamas con:

<form name=agregar action="registrodpDemoFlash">

Donde el registrodpDemoFlash es el alias de tu serlvet, eso que tu has definido en el web.xml no?

Muetsranos como estas registrando tu servlet en el web.xml, es decir las etiquetas servlet y servlet-mapping de tu archivo de configuracion ...
__________________
Saludos,

H@C..
  #8 (permalink)  
Antiguo 14/12/2004, 06:10
 
Fecha de Ingreso: abril-2003
Mensajes: 64
Antigüedad: 21 años, 6 meses
Puntos: 0
Gracias por responder Hugo777

en mi web.xml:

<servlet>
<servlet-name>registrodpDemoFlash</servlet-name>
<servlet-class>registrodpDemoFlash</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>registrodpDemoFlash</servlet-name>
<url-pattern>/registrodpDemoFlash</url-pattern>
</servlet-mapping>
  #9 (permalink)  
Antiguo 14/12/2004, 08:52
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 10 meses
Puntos: 1
Tal como se ve registrado en el web.xml, tu alias del servlet esta ubicado en la raiz: /registrodpDemoFlash , por lo tanto desde tu pagina Html lo llamas con la ruta relativa, bacán, pero eso funciona siempre que la página HTML se encuentre en la raíz de tu webapp , ¿ esta en la raíz ?
__________________
Saludos,

H@C..

Última edición por hugo777; 14/12/2004 a las 08:53
  #10 (permalink)  
Antiguo 07/06/2006, 11:04
 
Fecha de Ingreso: junio-2006
Mensajes: 2
Antigüedad: 18 años, 5 meses
Puntos: 0
Hola yo tengo un problema similar, pero yom subo la aplicacion por medio de Plesk 7.5.4, al servidor, pero al tratar de ejecutarla me presenta el mismo error, y la llamo desde una pagina html, con el nombre del archivo .war.

Si miro para ejecutarlo desde el Apache Tomcat, la aplicacion me sale en estado False,

que puede ser, ? pues si la ejecuto desde un server local sin plesk, funciona perfecto. claro la aplicacion sola .

por alguna respuesta muchas gracias.
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 14:01.