Well, to start with, the org.apache.geronimo.mail package are not the javamail implementation. That is just the gbeans used by geronimo to configure the default mail session, If you wish to hide the geronimo javamail implementation, you would need to hide javax.mail.* and org.apache.geronimo.javamail.*

Rick


Hearty wrote:
Hi Rick,

     My application using POP3 in a different way. Basically I am looking
for to use the application specific "mail.jar" instead of geronimo-mail
since I need to support both tomcat5.5 and geronimo using the same code
base. I have included mail.jar as a dependency jar. But even after tried to
hide the geronimo mail class using
<sys:filter>org.apache.geronimo.mail</sys:filter>, I am getting the same
error.

The following is the code snippet I am using related to POP3.
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimePart;

 public String getValue() {
        if ((strings == null) || (strings.length < 4)) {
            throw new
FormulaRuntimeException(getMessage("formula.common.invalidInput.header",
info));
        }

        Element element = getElement();
        if (element == null) {
            throw new
FormulaRuntimeException(getMessage("formula.MailImport.failed.mailStoreFolder"));
        }

        User user = getUser();
        if (user == null) {
            throw new
FormulaRuntimeException(getMessage("formula.MailImport.failed.currentElementOwner"));
            // some top folders are created with no owner

        }

        boolean expunge = false;
        if (strings[1].trim().equalsIgnoreCase("true") || strings[1].trim()
            .equalsIgnoreCase("yes"))
        {
            expunge = true;
        }

        String attachmentAttributeName = null;
        if (strings.length >= 5) {
            attachmentAttributeName = strings[4];
        }

        String result = "";
        try {
            Properties mailProperties = new Properties();
            Session session = Session.getInstance(mailProperties);
            URLName url = new URLName(strings[0]);
            Store store = session.getStore(url);
            store.connect();
            Folder folder = store.getFolder(url);
            folder.open(Folder.READ_WRITE);
            Message[] messages = folder.getMessages();
            result =
getMessage("formula.MailImport.lastupdate.message.many", messages.length) ;
            for (int i = 0; i < messages.length; i++) {
                if (messages[i] instanceof MimeMessage) {
                    MimeMessage message = (MimeMessage) messages[i];
                    Element subFolder = getMonthFolder(element, message
                        .getSentDate());
                    if (subFolder == null) {
result += getMessage("formula.MailImport.failed.folderCreate") ;
                        subFolder = element;
                    }
                    createElement(subFolder, user, message, strings[2],
                        strings[3], attachmentAttributeName);
                    message.setFlag(Flags.Flag.DELETED, expunge);
                }
            }
            folder.close(expunge);
            store.close();
        } catch (ClassCastException e) {
            log.error("", e);
            throw new
FormulaRuntimeException(getMessage("formula.MailImport.failed.attribute.wrongType"));
        } catch (Exception e) { // XXX PN nice error messages here
            log.error("", e);
            throw new
FormulaRuntimeException(getMessage("formula.MailImport.failed.genric.message",
e));
        }
        return result;
    }

Here strings array contains the values as "pop3://pop3user:[email protected]/Inbox","false","Mails","MID","Attachment","update_interval=1m"

When  store.connect(); is called I am getting the
javax.mail.AuthenticationFailedException.
Here pop3 url configuration is not part of any config files. It is as simple
as the user can configure it in a text field on clicking submit, the mail
application will try to fetch the mails if any.
The kind of solution I am looking for is, to use my application specific
mail.jar and avoid the loading of the classes related geronimo-mail.jar.



Rick McGuire wrote:
I'm not completely sure what you're trying to do here. Configuring SMTPHost and SMTPPort has no connection to the POP3 protocol. That only controls SMTP protocol. If you need to have POP3 configured, you can add a POP3Transport gbean to the javamail configuration. However, that only controls what gets used if you use the MailResource JNDI entry to obtain the session. How are you accessing the Session used to obtain the POP3 store instance? The answer to that question will determine what additional steps you need to take to get this working.

Rick

Hearty wrote:
I am using Apache Geronimo Server 2.1.3 and I am using POP3 protocol for
my
application mail settings.

I've configured SMTPHost and SMTPPort correctly with
config-subsitution.properties and in the config.xml  gbean for javamail
is
loaded.
<module name="org.apache.geronimo.configs/javamail/2.1.3/car">
        <gbean name="SMTPTransport">
            <attribute name="host">${SMTPHost}</attribute>
            <attribute name="port">${SMTPPort}</attribute>
        </gbean>
    </module>

But I am getting the javax.mail.AuthenticationFailedException. But when I
tried with tomcat 5.5, it is working fine. In tomcat I am using a jar
called
mail.jar.
The second approach I've done as follows [But still I am getting the
javax.mail.AuthenticationFailedException error]
1. I have made <module
name="org.apache.geronimo.configs/javamail/2.1.3/car"
load="false">
2. In geronimo-web.xml, I have added one entry against hidden-classes
<sys:hidden-classes>
   <sys:filter>org.apache.geronimo.mail</sys:filter>
</sys:hidden-classes>
3. I have included mail.jar as the dependency jar in geronimo-web.xml as
follows
 <sys:dependency>
                                
<sys:groupId>com.telelogic.focalpoint.lib</sys:groupId>
                                <sys:artifactId>mail</sys:artifactId>
                                <sys:version>1.3</sys:version>
                                <sys:type>jar</sys:type>
                        </sys:dependency>

In the both the approaches I am getting the same error. Since it was
working
fine with mail.jar in tomcat5.5, I preferred to go with the second
approach.

Please help me what additional settings I need to do make the POP3 mail
application to work fine?
If I made any mistakes in configuration please let me know.



javax.mail.AuthenticationFailedException
        at javax.mail.Service.connect(Service.java:277)
        at javax.mail.Service.connect(Service.java:91)
        at javax.mail.Service.connect(Service.java:76)
        at MailImport.getValue(MailImport.java:116)
        at
com.telelogic.focalpoint.bus.formula.ownformula.ExpressionInfo.getValue(ExpressionInfo.java:115)
        at
com.telelogic.focalpoint.bus.formula.FormulaManagerImpl.getExpressionValue(FormulaManagerImpl.java:2946)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
        at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
        at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
        at $Proxy83.getExpressionValue(Unknown Source)
        at
com.telelogic.focalpoint.bus.formula.parser.OwnFormulaToken.translateToUserDefined(OwnFormulaToken.java:755)
        at
com.telelogic.focalpoint.bus.formula.parser.OwnFormulaToken.getCalculatedValue(OwnFormulaToken.java:417)
        at
com.telelogic.focalpoint.bus.formula.parser.Token.getValue(Token.java:98)
        at
com.telelogic.focalpoint.bus.formula.parser.Tokens.getValue(Tokens.java:92)
        at
com.telelogic.focalpoint.bus.formula.TextFormula.calculateHelper(TextFormula.java:45)
        at
com.telelogic.focalpoint.bus.formula.Formula.calculate(Formula.java:145)
        at
com.telelogic.focalpoint.pres.controller.FormulaController.evaluate(FormulaController.java:168)
        at
com.telelogic.focalpoint.pres.controller.FormulaController.handlePost(FormulaController.java:85)
        at
com.telelogic.focalpoint.pres.controller.BaseController.myService(BaseController.java:453)
        at
com.telelogic.focalpoint.pres.controller.BaseController.service(BaseController.java:205)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.telelogic.focalpoint.pres.servletfilter.VersionCheckFilter.doFilter(VersionCheckFilter.java:35)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.telelogic.focalpoint.pres.servletfilter.WebSSOFilter.myDoFilter(WebSSOFilter.java:56)
        at
com.telelogic.focalpoint.pres.servletfilter.UriExcludingFilter.doFilter(UriExcludingFilter.java:51)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.telelogic.focalpoint.pres.servletfilter.CurrentUserHandlerFilter.myDoFilter(CurrentUserHandlerFilter.java:52)
        at
com.telelogic.focalpoint.pres.servletfilter.UriExcludingFilter.doFilter(UriExcludingFilter.java:51)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.telelogic.focalpoint.pres.servletfilter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:39)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.telelogic.focalpoint.pres.servletfilter.RequestPrinterFilter.myDoFilter(RequestPrinterFilter.java:56)
        at
com.telelogic.focalpoint.pres.servletfilter.UriExcludingFilter.doFilter(UriExcludingFilter.java:51)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
        at
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:406)
        at
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Unknown Source)



Reply via email to