You are right, I figured it out when I read your code. Now it is working fine.
2006/5/28, Henri Dupre <[EMAIL PROTECTED]>:
Hi Ted, It sounds like you don't have any JNDI available on your server. Wouldn't you be using Jetty? Jetty doesn't have any JNDI by default and I never did figure out how to get Javamail working in Jetty. My service assumes that a Javamail session is available through JNDI on "mail/Session". On tomcat I have in server.xml <Resource name="mail/Session" type="javax.mail.Session" mail.smtp.host="smtp.server.com" mail.mime.charset="ISO-8859-1"/> and I have a context.xml inside my war file with <ResourceLink name="mail/Session" global="mail/Session" type=" javax.mail.Session"/> On 5/27/06, Ted Steen <[EMAIL PROTECTED]> wrote: > > I get this exception when I try to send a mail with the service (just > like you do in your example) > > I'm using javax.mail 1.4 and javax.activation 1.1 (as needed by javax.mail > ) > > javax.naming.NoInitialContextException: Need to specify class name in > environment or system property, or as an applet parameter, or in an > application resource file: java.naming.factory.initial > at javax.naming.spi.NamingManager.getInitialContext( > NamingManager.java:645) > at javax.naming.InitialContext.getDefaultInitCtx( > InitialContext.java:247) > at javax.naming.InitialContext.getURLOrDefaultInitCtx( > InitialContext.java:284) > at javax.naming.InitialContext.lookup(InitialContext.java:351) > at actualis.web.tapestry.email.EmailEngineImpl.getMailSession( > EmailEngineImpl.java:111) > at actualis.web.tapestry.email.EmailEngineImpl.sendMessage( > EmailEngineImpl.java:220) > at actualis.web.tapestry.email.EmailEngineImpl.renderAndSendPage( > EmailEngineImpl.java:148) > at actualis.web.tapestry.email.EmailEngineImpl.sendEmail( > EmailEngineImpl.java:172) > at > $EmailEngine_10b756c789e.sendEmail($EmailEngine_10b756c789e.java) > at > $EmailEngine_10b756c789d.sendEmail($EmailEngine_10b756c789d.java) > at net.keso.ted.tapestrySandbox.pages.mail.MailTest.doSendMail( > MailTest.java:28) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at > org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeTargetMethod( > ListenerMethodInvokerImpl.java:214) > at > org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod > (ListenerMethodInvokerImpl.java:155) > at > org.apache.tapestry.listener.ListenerMethodInvokerImpl.searchAndInvoke( > ListenerMethodInvokerImpl.java:124) > at > org.apache.tapestry.listener.ListenerMethodInvokerImpl.invokeListenerMethod > (ListenerMethodInvokerImpl.java:65) > at org.apache.tapestry.listener.SyntheticListener.actionTriggered( > SyntheticListener.java:51) > at > org.apache.tapestry.binding.ListenerMethodBinding.actionTriggered( > ListenerMethodBinding.java:77) > at > org.apache.tapestry.listener.ListenerInvokerTerminator.invokeListener( > ListenerInvokerTerminator.java:51) > at > $ListenerInvoker_10b756c7786.invokeListener($ListenerInvoker_10b756c7786.java) > at > $ListenerInvoker_10b756c7785.invokeListener($ListenerInvoker_10b756c7785.java) > at org.apache.tapestry.link.DirectLink.trigger(DirectLink.java:105) > at org.apache.tapestry.engine.DirectService.triggerComponent( > DirectService.java:146) > at org.apache.tapestry.engine.DirectService.service( > DirectService.java:132) > at > $IEngineService_10b756c77f1.service($IEngineService_10b756c77f1.java) > at > org.apache.tapestry.services.impl.EngineServiceOuterProxy.service( > EngineServiceOuterProxy.java:66) > at org.apache.tapestry.engine.AbstractEngine.service( > AbstractEngine.java:248) > at org.apache.tapestry.services.impl.InvokeEngineTerminator.service > (InvokeEngineTerminator.java:60) > at > $WebRequestServicer_10b756c77bd.service($WebRequestServicer_10b756c77bd.java) > at com.carmanconsulting.tapernate.filter.TapernateFilter.service( > TapernateFilter.java:69) > at > $WebRequestServicerFilter_10b756c77bb.service($WebRequestServicerFilter_10b756c77bb.java) > at > $WebRequestServicer_10b756c77bf.service($WebRequestServicer_10b756c77bf.java) > at > $WebRequestServicer_10b756c77b7.service($WebRequestServicer_10b756c77b7.java) > at > org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service > (WebRequestServicerPipelineBridge.java:56) > at > $ServletRequestServicer_10b756c779b.service($ServletRequestServicer_10b756c779b.java) > at org.apache.tapestry.request.DecodedRequestInjector.service( > DecodedRequestInjector.java:55) > at > $ServletRequestServicerFilter_10b756c7797.service($ServletRequestServicerFilter_10b756c7797.java) > at > $ServletRequestServicer_10b756c779d.service($ServletRequestServicer_10b756c779d.java) > at org.apache.tapestry.multipart.MultipartDecoderFilter.service( > MultipartDecoderFilter.java:52) > at > $ServletRequestServicerFilter_10b756c7795.service($ServletRequestServicerFilter_10b756c7795.java) > at > $ServletRequestServicer_10b756c779d.service($ServletRequestServicer_10b756c779d.java) > at org.apache.tapestry.services.impl.SetupRequestEncoding.service( > SetupRequestEncoding.java:53) > at > $ServletRequestServicerFilter_10b756c7799.service($ServletRequestServicerFilter_10b756c7799.java) > at > $ServletRequestServicer_10b756c779d.service($ServletRequestServicer_10b756c779d.java) > at > $ServletRequestServicer_10b756c778f.service($ServletRequestServicer_10b756c778f.java) > at org.apache.tapestry.ApplicationServlet.doService( > ApplicationServlet.java:123) > at org.apache.tapestry.ApplicationServlet.doGet( > ApplicationServlet.java:79) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:596) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at org.mortbay.jetty.servlet.ServletHolder.handle( > ServletHolder.java:428) > at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch( > WebApplicationHandler.java:473) > at org.mortbay.jetty.servlet.ServletHandler.handle( > ServletHandler.java:568) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) > at org.mortbay.jetty.servlet.WebApplicationContext.handle( > WebApplicationContext.java:633) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) > at org.mortbay.http.HttpServer.service(HttpServer.java:909) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:820) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java > :986) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837) > at org.mortbay.http.SocketListener.handleConnection( > SocketListener.java:245) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > > 2006/5/21, Henri Dupre <[EMAIL PROTECTED]>: > > I finished packaging my email service into a nice jar file... You just > drop > > it in the classpath and then you can inject the email service in any > page. > > > > The API is: > > > > public abstract void sendEmail(Map<EmailField,String> properties, > String > > pageName, Object[] parameters, boolean html); > > > > public abstract void sendEmail(Map<EmailField,String> properties, > IPage > > page, Object[] parameters, boolean html); > > public abstract void sendEmail(Map<EmailField,String> properties, > String > > content, boolean html); > > > > > > The page emailed can be external and you can pass parameters to it. The > > service doesn't interfere with the current rendering. > > Here is a small example: > > > > @InjectObject("service:actualis.tapestry.email.EmailEngine") > > public abstract EmailEngine getEmailEngine(); > > > > public void emailConfig() { > > Map<EmailField,String> emailProps = new > HashMap<EmailField,String>(); > > emailProps.put(EmailField.SUBJECT,"Votre devis"); > > emailProps.put(EmailField.FROM, "[EMAIL PROTECTED]"); > > emailProps.put(EmailField.TO, getEmailClient()); > > getEmailEngine().sendEmail(emailProps, "EmailConfigurationTxt", new > > Object[] { getConfiguration() }, false); > > } > > > > If anyone is interested I can send my stuff... I wouldn't mind > contributing > > my component to a tapestry component repository but I did not find any > > information on how to contribute. > > > > > > -- > > Thanks, > > > > Henri. > > > > > > > -- > /ted > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Thanks, Henri.
-- /ted --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]