I've experienced this same issue. Shouldn't we simply remove these
JARs from WEB-INF/lib? Or are they used elsewhere? We could always
just move the e-mail configuration into roller.properties and not use
JNDI. I prototyped this about a year ago and it seemed to work fine.
Unfortunately, I don't have the code anymore.
Matt
On 3/25/06, Bill Tribley <bill@tribley.us> wrote:
> My email notifications were not working. Throwing a big bad exception copied below. Turns
out you really do have to move the two jars in step 4.2 as the text says, despite the unix
"cp" command versus "mv" and the lack of a del command in Windows. I lost a bit of time on
this. The error trace complaining of a bad typecast was the clue that two classes of the same
name had been used, one to initialize and the other to run. Deleting the original copies in
WEB-INF/lib and restarting the webapp fixed the issue.
>
> STEP 4.2: Install JavaMail and Activation jars
> If you like to use Roller's e-mail notification features, you'll need to add the JavaMail
and Activation
> jars to your application server's classpath. Currently, we ship these jars with Roller,
so move them from
> the Roller WEB-INF/lib directory and into the Tomcat common/lib directory.
> UNIX example
> % cp $ROLLER/WEB-INF/lib/mail.jar $CATALINA_HOME/common/lib
> % cp $ROLLER/WEB-INF/lib/activation.jar $CATALINA_HOME/common/lib
> Windows example
> c> cp %ROLLER%\WEB-INF\lib\mail.jar %CATALINA_HOME%\common\lib
> C> cp %ROLLER%\WEB-INF\lib\activation.jar %CATALINA_HOME%\common\lib
>
> The big bad exception with the jars left in WEB-INF/lib:
> ERROR 2006-03-26 01:04:45,788 StandardWrapperValve:invoke - Servlet.service() for servlet
action threw exception
> java.lang.ClassCastException: javax.mail.Session
> at org.roller.presentation.website.actions.InviteMemberAction.notifyInvitee(InviteMemberAction.java:202)
> at org.roller.presentation.website.actions.InviteMemberAction.send(InviteMemberAction.java:164)
> 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.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:276)
> at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:196)
> at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
> at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.roller.presentation.filters.RequestFilter.doFilter(RequestFilter.java:79)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.roller.presentation.filters.BreadCrumbFilter.doFilter(BreadCrumbFilter.java:77)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.roller.presentation.filters.PersistenceSessionFilter.doFilter(PersistenceSessionFilter.java:43)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
> at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
> at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:50)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:168)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:174)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:220)
> at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
> at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
> at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.roller.presentation.filters.SchemeEnforcementFilter.doFilter(SchemeEnforcementFilter.java:104)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.roller.presentation.filters.CharEncodingFilter.doFilter(CharEncodingFilter.java:94)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
> at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
> at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
>
>
|