1. you should use:
<dependency>
<groupId>org.apache.geronimo.configs</groupId>
<artifactId>javamail</artifactId>
<type>car</type>
</dependency>
to minimize the chances of ClassCastException due to loading javamail
in the wrong classloader
2. this still won't work unless log4j is using the
public static Class<?> forName(String name, boolean initialize,
ClassLoader loader)
method with the ThreadContextClassLoader. Can you construct the
appender yourself in your servlet init method, where you _can_ access
javamail classes via the above dependency, and register it with log4j
in code?
thanks
david jencks
On Sep 5, 2007, at 4:22 PM, Xh wrote:
Hi All!
I have very strange problem.
In my geronimo-web.xml I wrote:
<dependency>
<groupId>repository.org.apache.geronimo.javamail</
groupId>
<artifactId>geronimo-javamail_1.4_mail</artifactId>
<version>1.2</version>
<type>jar</type>
</dependency>
but when SMTPAppender for Log4j is being loaded I get:
java.lang.NoClassDefFoundError: javax/mail/Multipart
java.lang.Class.getDeclaredConstructors0(Native Method)
java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
java.lang.Class.getConstructor0(Class.java:2699)
java.lang.Class.newInstance0(Class.java:326)
java.lang.Class.newInstance(Class.java:308)
org.apache.log4j.xml.DOMConfigurator.parseAppender
(DOMConfigurator.java:174)
org.apache.log4j.xml.DOMConfigurator.findAppenderByName
(DOMConfigurator.java:150)
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference
(DOMConfigurator.java:163)
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement
(DOMConfigurator.java:425)
org.apache.log4j.xml.DOMConfigurator.parseRoot
(DOMConfigurator.java:394)
org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:829)
org.apache.log4j.xml.DOMConfigurator.doConfigure
(DOMConfigurator.java:712)
org.apache.log4j.xml.DOMConfigurator.doConfigure
(DOMConfigurator.java:604)
org.apache.log4j.xml.DOMConfigurator.configure
(DOMConfigurator.java:733)
org.xh.log4jtest.Test.init(Test.java:21)
I've looked the repository/org/apache/geronimo/javamail/geronimo-
javamail_1.4_mail/1.2/geronimo-javamail_1.4_mail-1.2.jar file
and I can see that there is javax/mail/Multipart.class file.
Is geronimo not loading my dependency or is it something else?
best regards
Ćukasz
___________________________________________________________
Yahoo! Answers - Got a question? Someone out there knows the
answer. Try it
now.
http://uk.answers.yahoo.com/