You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Jochen Kraushaar (JIRA)" <ji...@apache.org> on 2014/06/25 15:38:26 UTC

[jira] [Comment Edited] (KARAF-3067) NoClassDefFoundError on startup when log4j SMTPAppender is configured

    [ https://issues.apache.org/jira/browse/KARAF-3067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14043437#comment-14043437 ] 

Jochen Kraushaar edited comment on KARAF-3067 at 6/25/14 1:37 PM:
------------------------------------------------------------------

Problem with custom distributions can be solved by creating a custom feature package containing the javax.mail API and adding feature to startupFeatures of distribution (which infact will add bundle to etc/startup.properties). Example:

{code:title=features.xml of feature repository}
(...)
<feature name="javax.mail" version="1.4.4">
   <bundle start-level="7">mvn:javax.mail/mail/1.4.4</bundle>
</feature>
(...)
{code}

{code:title=pom.xml of custom distribution}
<startupFeatures>
   <feature>javax.mail</feature>
</startupFeatures>
{code}

In my opinion javax.mail API should be installed by default in Karaf to support SMTPAppender in logging. But maybe this is rather an improvment than a bug.

Edit: Sorry Achim, I saw your comment too late. :-)


was (Author: jkraushaar):
Problem with custom distributions can be solved by creating a custom feature package containing the javax.mail API and adding feature to startupFeatures of distribution (which infact will add bundle to etc/startup.properties). Example:

{code:title=features.xml of feature repository}
(...)
<feature name="javax.mail" version="1.4.4">
   <bundle start-level="7">mvn:javax.mail/mail/1.4.4</bundle>
</feature>
(...)
{code}

{code:title=pom.xml of custom distribution}
<startupFeatures>
   <feature>javax.mail</feature>
</startupFeatures>
{code}

In my opinion javax.mail API should be installed by default in Karaf to support SMTPAppender in logging. But maybe this is rather an improvment than a bug.

> NoClassDefFoundError on startup when log4j SMTPAppender is configured
> ---------------------------------------------------------------------
>
>                 Key: KARAF-3067
>                 URL: https://issues.apache.org/jira/browse/KARAF-3067
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf-config
>    Affects Versions: 3.0.1
>            Reporter: Jochen Kraushaar
>
> *Problem:*
> When you add a SMTPAppender to your etc/org.ops4j.pax.logging.cfg file, a NoClassDefFoundError is thrown on startup of Karaf.
> *Stacktrace:*
> {code}
> 2014-06-25 14:08:43,552 | ERROR | s4j.pax.logging) | configadmin                      | 10 - org.apache.felix.configadmin - 1.6.0 | [org.osgi.service.log.LogService, org.knopflerfish.service.log.LogService, org.ops4j.pax.logging.PaxLoggingService, org.osgi.service.cm.ManagedService, id=9, bundle=8/mvn:org.ops4j.pax.logging/pax-logging-service/1.7.2]: Unexpected problem updating configuration org.ops4j.pax.logging
> java.lang.NoClassDefFoundError: javax/mail/internet/AddressException
> 	at java.lang.Class.getDeclaredConstructors0(Native Method)
> 	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
> 	at java.lang.Class.getConstructor0(Class.java:2803)
> 	at java.lang.Class.newInstance(Class.java:345)
> 	at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:336)
> 	at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
> 	at org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:97)
> 	at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
> 	at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
> 	at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
> 	at org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
> 	at org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
> 	at org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
> 	at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:148)
> 	at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:81)
> 	at org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1723)
> 	at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException not found by org.ops4j.pax.logging.pax-logging-service [8]
> 	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
> 	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
> 	... 18 more
> {code}
> *Changes made in org.ops4j.pax.logging.cfg:*
> Add e-mail appender:
> {code}
> log4j.appender.email=org.apache.log4j.net.SMTPAppender
> log4j.appender.email.Threshold=FATAL
> log4j.appender.email.SMTPHost=your_host
> log4j.appender.email.From=your_mail
> log4j.appender.email.To=your_mail
> log4j.appender.email.Subject=Fatal error
> log4j.appender.email.bufferSize=512
> log4j.appender.email.layout=org.apache.log4j.HTMLLayout
> log4j.appender.email.layout.Title=Fatal error
> {code}
> Add appender to root logger:
> {code}
> log4j.rootLogger=INFO, out, email, osgi:*
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)