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

Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no...

Estas en el tema de Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no... en el foro de Java en Foros del Web. Muy buenas a todos, aprovecho para presentarme como nuevo miembro del foro, porque aunque he tratado de sobrevivir trabajando con Eclipse sin tener que recurrir ...
  #1 (permalink)  
Antiguo 01/04/2008, 23:28
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no...

Muy buenas a todos, aprovecho para presentarme como nuevo miembro del foro, porque aunque he tratado de sobrevivir trabajando con Eclipse sin tener que recurrir a foros, creo que ha llegado el momento de rendirme ante la evidencia y pedir ayuda desesperadamente :)

El caso es que estoy trabajando en mi proyecto fin de carrera, y cuando parecía que todo iba perfectamente, he metido el "mail.jar" para poder enviar emails desde la aplicación, y desde que lo he probado todo ha ido a peor.

Ahora mismo CREO que he dejado todo como antes de haber cambiado nada para el "mail.jar" (he borrado todos los ficheros y las clases relacionadas con el envio de emails y creo que he dejado la configuración de eclipse tal y como estaba antes). Pero el caso es que me da un error que llevo varios días sin ser capaz de solucionar, y aunque me huelo que va a ser alguna "chorrada" de la configuración, creo haber probado todas las combinaciones posibles y ya no sé ni cómo estaba al ppio.

El error en principio parece bastante general; el servidor arranca, y las líneas "feas" son las siguientes (el resto no las pego porque son bastantes y no dan ningún error, simplemente son el resultado de la ejecución de un listener que se inicia con la aplicación):

02-abr-2008 7:19:35 org.apache.catalina.core.AprLifecycleListener init
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Archivos de programa\Java\jre1.6.0_03\bin;.;C:\WINDOWS\Sun\Jav a\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Archivos de programa\Java\jre1.6.0_03\bin\client;C:\Archivos de programa\Java\jre1.6.0_03\bin;C:\Archivos de programa\PC Connectivity Solution\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW S\System32\Wbem;C:\Archivos de programa\MATLAB\R2007b\bin;C:\Archivos de programa\MATLAB\R2007b\bin\win32;C:\Python25
02-abr-2008 7:19:35 org.apache.coyote.http11.Http11Protocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
02-abr-2008 7:19:35 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 516 ms
02-abr-2008 7:19:35 org.apache.catalina.core.StandardService start
INFO: Arrancando servicio Catalina
02-abr-2008 7:19:35 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.10
02-abr-2008 7:19:36 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Tomcat 6.0.10\work\Catalina\localhost\.metadata\.plugins\ org.eclipse.wst.server.core\tmp0\wtpwebapps\lia\WE B-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Iniciando contextInitialized
...


Pese a que da esos errores, el servidor se mantiene levantado hasta que trato de llamar a cualquier página JSP (incluso estando vacía), en ese momento salta el siguiente error (este lo voy a pegar entero porque no es especialmente largo y quizás alguien lo vea claro...):


Estado HTTP 500 -

--------------------------------------------------------------------------------

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:532)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:366)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)


causa raíz

java.lang.NullPointerException
org.apache.jsp.tonto_jsp._jspInit(tonto_jsp.java:2 2)
org.apache.jasper.runtime.HttpJspBase.init(HttpJsp Base.java:52)
org.apache.jasper.servlet.JspServletWrapper.getSer vlet(JspServletWrapper.java:157)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:320)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)


Para incluir los ficheros en el proyecto (para que estén accesibles desde la máquina de Java, vamos) uso la configuración concreta para proyectos de Eclipse, no la variable de entorno de Windows, lo comento por si a alguien le sirve de pista, aunque insisto en que todo esto funcionaba así, hasta que no sé qué narices he cambiado...

También decir que no es problema del web.xml; lo he repasado línea a línea y está correcto... Tiene que ser (creo) algo en la configuración de Eclipse...

En fin, si alguien tiene idea de qué puede ser o necesita más datos para averiguarlo, estaré "pegado" al foro :)

Un saludo,
Alberto.
  #2 (permalink)  
Antiguo 01/04/2008, 23:44
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

Bueno, pues nada, estas cosas pasan... Después de mil cambios, no tengo ni idea de qué puedo haber cambiado estos días, pero sí que sé qué fallaba justo cuando he redactado el anterior mail; había dejado una copia de los servlet-api.jar y jsp-api.jar dentro del directorio del proyecto, y de ahí el último fallo.

De todos modos tendré ocasión de plantear el problema de nuevo, porque voy a volver a usar el Javamail y presumiblemente me dará guerra de nuevo, pero este pequeño fallo ya está solucionado. Dejo no obstante el mensaje, por si a algún despistado como yo le sirve de ayuda, pero si algún administrado estima oportuno quitarlo por quedar resuelto nada más postearlo me parecerá bien.

Lo dejo también a modo de presentación, ya que como decía, voy a animarme a participar en este foro; no me gustan mucho porque suelen estar llenos de gente que responde "por responder" y suelo encontrar algún mensaje útil después de haberme leído tropecientos que no me sirven de nada, pero en este foro vengo viendo desde hace un tiempo que se trabaja bien y se va al grano, así que desde ahora contáis con otro miembro activo :) Termino ahora la superior y empiezo a meterme "en serio" con Java, así que espero poder ir aportando algo según vaya cogiendo tablas...

En fin, no me enrollo más, que para ser un foro de programación ya lo he hecho más de la cuenta xD pero estoy eufórico por haber vuelto por fin al estado de hace un par de días, con mi proyecto "estable" :)

Un saludo,
Alberto.
  #3 (permalink)  
Antiguo 02/04/2008, 00:03
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

Me alegro que lo hayas solucionado, por si no lo habias visto o para futuros "radio-oyentes", la unica linea "fea" del todo, el resto son avisos, era la ultima, y te indicaba cual era el problema:
Cita:
02-abr-2008 7:19:36 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\Tomcat 6.0.10\work\Catalina\localhost\.metadata\.plugins\ org.eclipse.wst.server.core\tmp0\wtpwebapps\lia\WE B-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Iniciando contextInitialized
Las clases que ya tiene el servidor no conviene duplicarlas en nuestros proyectos, aunque haya que enlazarlas para compilar no debemos ponerlas para ejecutar, por que si no se producen errores dificiles de depurar.

Pues nada, como ya lo arreglaste estupendo.
Un saludo y bienvenido al club.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 02/04/2008, 13:17
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

Gracias GreenEyed,

Como supuse, el error inicial vuelve a darme problemas. No era esa la única línea fea :P, la primera también, y creo que es la culpable de que no me funcionase el tema del correo. La línea a la que me refiero (no voy a copiar toda la salida porque es absurdo, ya que es al ppio de la ejecución) es ésta:

INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Archivos de programa\Java\jre1.6.0_03\bin;.;C:\WINDOWS\Sun\Jav a\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Archivos de programa\Java\jre1.6.0_03\bin\client;C:\Archivos de programa\Java\jre1.6.0_03\bin;C:\Archivos de programa\PC Connectivity Solution\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW S\System32\Wbem;C:\Archivos de programa\MATLAB\R2007b\bin;C:\Archivos de programa\MATLAB\R2007b\bin\win32;C:\Python25;C:\To mcat 6.0.10\lib

Sobra decir que no tengo muy claro qué path es el que quiere encontrar, por lo que aunque imagino que la solución será meterlo en la variable de entorno, no sé cuál poner...

Lo que estoy intentando es mandar un correo con una cuenta de Gmail con el siguiente código:


import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;


public class Mailer
{

public static void main()
{
Mailer obj = new Mailer();
String server = "smtp.gmail.com";
String userName = "[email protected]";
String password = "pass";
String fromAddres = "perenganito";
String toAddres = "[email protected]";
String cc = "";
String bcc = "";
boolean htmlFormat = false;
String subject = "tema";
String body = "prueba";

obj.sendMail(server, userName, password, fromAddres, toAddres, cc, bcc,
htmlFormat, subject, body);

}

public void sendMail(String server, String userName, String password, String fromAddress, String toAddress, String cc, String bcc, boolean htmlFormat, String subject, String body)
{

Properties properties = System.getProperties();
properties.put("mail.smtps.host", server);
properties.put("mail.smtps.auth", "true");
Session ses = Session.getInstance(properties);

ses.setDebug(true);

try{

MimeMessage msg = new MimeMessage(ses);

msg.setFrom(new InternetAddress(fromAddress));

if (toAddress != null)
{
msg.addRecipients(Message.RecipientType.TO, toAddress);
}

if (cc != null)
{
msg.setRecipients(Message.RecipientType.CC
,InternetAddress.parse(cc, false));
}

if (bcc != null)
{
msg.setRecipients(Message.RecipientType.BCC
,InternetAddress.parse(bcc, false));
}

if (htmlFormat)
{
msg.setContent(body, "text/html");
}
else
{
msg.setContent(body, "text/plain");
}

msg.setSubject(subject);
msg.saveChanges();

Transport tr = ses.getTransport("smtps");
tr.connect(server,userName, password);
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}

catch(MessagingException e)
{
e.printStackTrace();
}



}
}

class MyPasswordAuthenticator extends Authenticator
{
String user;
String pw;

public MyPasswordAuthenticator (String username, String password)
{
super();
this.user = username;
this.pw = password;
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, pw);
}
}



Pero vamos, que el error tiene que ser que me falta algo en alguna variable de entorno...

Esta vez me espero sin tocar nada, que la otra vez me lié a tocar cosas que no controlaba y terminé como terminé :)

Saludos,
Alberto.
  #5 (permalink)  
Antiguo 02/04/2008, 15:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

Lo que muestras no es un error, es solo "INFO" que te dice que no tienes la libreria nativa para ir "rapido-que-te-cagas", pero nada mas.

El error al mandar el mail debe ser otro.
¿Cuando ejecutas el codigo que te dice? Logs, pagina de error, excepciones...

S!

PD: La direccion de la que envias "perenganito" es correcta? No digo que sea esa sino si es "valida", a lo mejor no te deja por que pareces un spammer con esa cuenta tan rara
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 02/04/2008, 18:45
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

JAJAJA, si, si, "perenganito" es válida :) (si no es por la aclaración...xD)

Y si, cierto, me olvidé de pegar el error en concreto. De todos modos, aparte de arreglar el error del mail, me gustaría saber si puedo quitar ese mensaje aunque se a INFO (me refiero a que me gustaría dejar "bien-bien" la instalación, no a bloquear el mensaje :))

type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: Error instanciando clase de servlet used.Mailer
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:216)
org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:634)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:445)
java.lang.Thread.run(Unknown Source)


causa raíz

java.lang.NoClassDefFoundError: javax/mail/MessagingException
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Unk nown Source)
java.lang.Class.getConstructor0(Unknown Source)
java.lang.Class.newInstance0(Unknown Source)
java.lang.Class.newInstance(Unknown Source)
org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:216)
org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:634)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:445)
java.lang.Thread.run(Unknown Source)



Un saludo,
Alberto.
  #7 (permalink)  
Antiguo 03/04/2008, 00:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

Ok .
El mensaje revelador es ese:
Cita:
java.lang.NoClassDefFoundError: javax/mail/MessagingException
Si fuese ClassNotFoundException, te diria que es por que te falta la clase, pero con NoClassDefFoundError mas que "faltar", quiere decir que tienes un conflicto. Yo diria que tienes mail.jar mas de una vez en en el classpath de tu aplicacion. Puede que el Tomcat lo tenga ya incluido en sus librerias y tu ademas lo añadas en WEB-INF/lib, por ejemplo.

Busca mail.jar o similares por tu aplicacion web, y a ver si esta en Tomcat en algun directorio de librerias compartidas.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #8 (permalink)  
Antiguo 03/04/2008, 08:32
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

Muy buenas GreenEyed, he estado "toqueteando" y parece que ya funciona, aunque no tengo tiempo ahora de probarlo bien, pero ejecuta las funciones hasta el final sin dar problemas, de modo que al menos el tema de clases ya está solucionado.

Te coemnto lo que era porque no me gusta que las cosas funcionen sin saber porqué. Lo único que he cambiado de la configuración que había cuando postee el mensaje ha sido marcar (con un tick) la librería de mail.jar en la ventana de opciones de Eclipse dentro del proyecto que se llama "J2EE Module Dependencies". También aparecen, pero sin marcar las de servlet-api y jsp-api y funcionan perfectamente...

Ya no tengo problemas (parece) con esto, así que si no te sobra el tiempo no lo pierdas con esto, pero si tienes un rato libre para investigar, genial, pero ahora voy a pasar a abrir otro hilo sobre el manejo de directorios desde JSP. Ya no me da tiempo, así que lo haré esta noche :)
  #9 (permalink)  
Antiguo 03/04/2008, 09:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Help! He debido desconfigurar algo en Eclipse y lo que antes funcionaba ahora no.

No uso los plugins J2EE de Eclipse, me gusta saber las dependencias que utilizo y las defino "a mano". Supongo que debia ser que te faltaba añadir el mail.jar en tu proyecto por que alguna clase que usas tiene una dependencia y el servidor no tiene ese .jar o la dependencia no esta de forma que pueda esar el .jar del servidor.
Y por eso tienes que incluir tu el .jar explicitamente.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
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 20:48.