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]

Reply via email to