Thanks Vincent, Well I am going on vacation right now. I will follow your suggestion when I got back and I will tell you what the error was so that everybody knows...
Good wishes to anyone wherever in the world you are... Jose On Wed, Aug 13, 2003 at 08:07:42AM +0200, Vincent Massol wrote: > > > > -----Original Message----- > > From: Jose Alfonso Martinez [mailto:[EMAIL PROTECTED] > > Sent: 13 August 2003 03:17 > > To: Cactus Users List > > Subject: Re: calling getServletContext() in a servlet - how to?? > > > > Yes, well I am only showing the init() method of InscribeServlet :( > > I don't know if I could/should show more. If you think > > it could be of any help I will give it another thought ok? :) > > Ok. Here's what I suggest. Try writing another servlet, but a minimal > one that reproduces the problem. Normally, by doing this, you'll find > out that that servlet works, and by diffing with your InscribeServlet > you'll see what was wrong in that one. > > The only error I can see below is in TestInscribeServlet. You are using > a ServletTestSuite. This is not needed. This should be used only for > wrapping pure junit TestCase (that's the goal of it!). If you're > extending ServletTestCase (as you are), you can simply remove your > suite() method. > > Try it! Maybe it'll help... > > Thanks > -Vincent > > > > > ... since we both will benefit from doing it, specially me :) > > > > > > I was thinking it could be a classpath issue. Something that avoids > the > > ServletRedirector to create the config object. Anyway, I may not > > have an idea of what I am talking about. I will keep trying > > and if I find out something... I'll tell you > > > > Thanks a lot > > > > > > TestInscribeServlet: > > ===================== > > > > package com.cevex.servlet; > > > > import com.cevex.servlet.InscribeServlet; > > > > import javax.servlet.ServletException; > > > > import org.apache.cactus.ServletTestCase; > > import org.apache.cactus.ServletTestSuite; > > import org.apache.cactus.WebRequest; > > > > import junit.framework.Test; > > > > public class TestInscribeServlet extends ServletTestCase > > { > > public static void main(String[] theArgs) > > { > > junit.textui.TestRunner.main(new String[] > > {TestInscribeServlet.class.getName()}); > > } > > > > public static Test suite() > > { > > ServletTestSuite suite = new ServletTestSuite(); > > suite.addTestSuite(TestInscribeServlet.class); > > return suite; > > } > > > > public void beginPostMethod(WebRequest theRequest) > > { > > theRequest.addParameter("nombres", "Juan Alberto"); > > theRequest.addParameter("apellidos", "Robles"); > > theRequest.addParameter("email", "[EMAIL PROTECTED]"); > > theRequest.addParameter("ciudad", "Guadalajara"); > > theRequest.addParameter("estado", "Jalisco"); > > theRequest.addParameter("pais", "M�xico"); > > theRequest.addParameter("deseaBoletines", "true"); > > theRequest.addParameter("tipoDeInscripcion", > "regular"); > > theRequest.addParameter("sexo", "true"); > > theRequest.addParameter("anioNacimiento", "1988"); > > theRequest.addParameter("directo", ""); > > theRequest.addParameter("confirmacion", "true"); > > } > > > > public void testPostMethod() throws ServletException > > { > > assertNotNull("aha config is null", config); > > InscribeServlet inscribeServlet = new > InscribeServlet(); > > inscribeServlet.init(config); > > // inscribeServlet.doPost(request, > response); > > } > > > > } > > > > > > > > InscribeServlet: > > ==================== > > > > public class InscribeServlet extends HttpServlet { > > > > ... some member fields declarations > > > > /** Initialize this servlet > > * <UL> > > * <LI> Get the context's datasource</LI> > > * <LI> Initialize mail session </LI> > > * <LI> Read emails </LI> > > * </UL> > > **/ > > public void init() throws CevexServletException > > { > > try > > { > > // get the context > > Context initCtx = new InitialContext(); > > Context envCtx = (Context) initCtx.lookup("java:comp/env"); > > > > // get the datasource > > ds = (DataSource) envCtx.lookup("jdbc/cevexDB"); > > > > /* something is worng with the mail session, check later */ > > //session = (Session) envCtx.lookup("mail/Session"); > > > > // initialize new mail seession > > Properties props = new Properties(); > > props.put("mail.smtp.host", "localhost"); > > Session session = Session.getDefaultInstance(props, null); > > session.setDebug(false); > > > > // Read email strings from files > > String realPath = getServletContext().getRealPath("/"); > > mailInscripcionMasc = new CevexMail(session, realPath + > > getInitParameter("mailInscripcionMasc")); > > mailInscripcionFem = new CevexMail(session, realPath + > > getInitParameter("mailInscripcionFem")); > > mailInscripcionConInvitacionMasc = new CevexMail(session, > realPath + > > > > getInitParameter("mailInscripcionConInvitacionMasc")); > > mailInscripcionConInvitacionFem = new CevexMail(session, > realPath + > > > > getInitParameter("mailInscripcionConInvitacionFem")); > > > > } // end try > > catch (FileNotFoundException fe) { > > getServletContext().log("InscribeServlet: Al inicializar el > > servlet, " + > > "no se encontro un archivo: " + > > fe.getMessage()); > > throw new CevexServletException(getServletConfig(), "No se > encontro > > un archivo: " + > > fe.getMessage() + " al iniciar > > InscribeServlet"); > > } > > catch (IOException ioe) > > { > > getServletContext().log("InscribeServlet: Error al leer el > archivo: > > " + ioe.getMessage()); > > throw new CevexServletException(getServletConfig(), "Error de > > escritura en el archivo: " + > > ioe.getMessage() + " al iniciar > > InscribeServlet"); > > } > > catch (MessagingException me) > > { > > throw new CevexServletException(getServletConfig(), me); > > } > > catch (NamingException ne) > > { > > throw new CevexServletException(getServletConfig(), ne); > > } > > } //end init > > > > > > // Temporary allow GET for testing > > public void doGet(HttpServletRequest req, > > HttpServletResponse res) throws ServletException, > IOException { > > doPost(req, res); > > } > > > > public void doPost(HttpServletRequest req, > > HttpServletResponse res) throws ServletException, > IOException { > > > > > > > > ... bla bla bla ... > > } > > } > > > > > > > > On Tue, Aug 12, 2003 at 09:32:13PM +0200, Vincent Massol wrote: > > > > > > > > > > -----Original Message----- > > > > From: Jose Alfonso Martinez [mailto:[EMAIL PROTECTED] > > > > Sent: 12 August 2003 19:32 > > > > To: Cactus Users List > > > > Subject: Re: calling getServletContext() in a servlet - how to?? > > > > > > > > > > > > In fact, config is null > > > > > > > > why does it happen??? > > > > > > > > > > If you had asked me, I would have said it isn't possible, seen the > > > Cactus implementation code! :-) > > > > > > Would it be possible for you to send us your InscribeServlet and > your > > > TestInscribeServlet code? > > > > > > The only other option I see is that you happen to have an instance > > > variable called config that isn't initialized... but then I'm pretty > > > sure you would have noticed that... ;-) > > > > > > Thanks > > > -Vincent > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
