Today I started a new try on this issue with Karaf 2.2.2, but unfortunately
without any luck... :-(

What I did:

1) I downloaded Apache Karaf 2.2.2.

2) I changed ${karaf.root}/etc/startup.properties from:
-- snip --
org/ops4j/pax/logging/pax-logging-api/1.6.3/pax-logging-api-1.6.3.jar=8
org/ops4j/pax/logging/pax-logging-service/1.6.3/pax-logging-service-1.6.3.jar=8
org/apache/felix/org.apache.felix.configadmin/1.2.8/org.apache.felix.configadmin-1.2.8.jar=10
-- snap --

to:
-- snip --
org/ops4j/pax/logging/pax-logging-api/1.6.3/pax-logging-api-1.6.3.jar=8
org/ops4j/pax/logging/pax-logging-service/1.6.3/pax-logging-service-1.6.3.jar=8
org/apache/cmueller/logging/log4j-layout/1.0.0/log4j-layout-1.0.0.jar=9
org/apache/felix/org.apache.felix.configadmin/1.2.8/org.apache.felix.configadmin-1.2.8.jar=10
-- snap --

2) I copied my bundle log4j-layout-1.0.0.jar into
${karaf.root}/system/org/apache/cmueller/logging/log4j-layout/1.0.0

3) I changed ${karaf.root}/etc/org.ops4j.pax.logging.cfg from:
-- snip --
# File appender
log4j.appender.out=org.apache.log4j.RollingFileAppender
log4j.appender.out.layout=org.apache.log4j.PatternLayout
log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t
| %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} -
%X{bundle.version} | %m%n
-- snap --

to:
-- snip --
# File appender
log4j.appender.out=org.apache.log4j.RollingFileAppender
log4j.appender.out.layout=org.apache.cmueller.logging.log4j.MyCustomLayout
log4j.appender.out.layout.ConversionPattern=%d{ABSOLUTE} | %-5.5p | %-16.16t
| %-32.32c{1} | %-32.32C %4L | %X{bundle.id} - %X{bundle.name} -
%X{bundle.version} | %m%n
-- snap --

When I start Karaf, I get the following exception:
christian-muellers-macbook-pro:bin cmueller$ ./karaf
ERROR: Bundle org.ops4j.pax.logging.pax-logging-service [3] Error starting
mvn:org.ops4j.pax.logging/pax-logging-service/1.6.3
(org.osgi.framework.BundleException: Activator start error in bundle
org.ops4j.pax.logging.pax-logging-service [3].)
java.lang.NoClassDefFoundError: org/apache/log4j/PaxLoggingConfigurator
        at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.configureDefaults(PaxLoggingServiceImpl.java:251)
        at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.<init>(PaxLoggingServiceImpl.java:61)
        at
org.ops4j.pax.logging.service.internal.Activator.start(Activator.java:108)
        at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:1842)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1759)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1163)
        at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
        at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException:
org.apache.log4j.PaxLoggingConfigurator not found by
org.ops4j.pax.logging.pax-logging-api [4]
        at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:787)
        at
org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
        at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at
org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
        at
org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
        at
org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
        at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
        at
org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
        at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 9 more

When I execute a list -t 0 on the console, I get the following output:
karaf@root> list -t 0
START LEVEL 100 , List Threshold: 0
ID   State         Blueprint      Level  Name
[   0] [Active     ] [            ] [    0] System Bundle (3.0.9)
[   1] [Active     ] [            ] [    5] OPS4J Pax Url - wrap: (1.2.7)
[   2] [Active     ] [            ] [    5] OPS4J Pax Url - mvn: (1.2.7)
[   3] [Resolved   ] [            ] [    8] OPS4J Pax Logging - Service
(1.6.3)
                                       Fragments: 5
[   4] [Active     ] [            ] [    8] OPS4J Pax Logging - API (1.6.3)
[   5] [Resolved   ] [            ] [    9]
org.apache.cmueller.logging.log4j-layout (1.0.0)
                                       Hosts: 3
I checked the bundle [3] (org.ops4j.pax.logging.pax-logging-service) and it
doesn't import the package 'org.apache.log4j'.

I enabled the dynamic-import on this bundle:

karaf@root> dev:dynamic-import 3
Enabling dynamic imports on bundle org.ops4j.pax.logging.pax-logging-service
[3]

and restarted the framework:

karaf@root> dev:restart
karaf@root>
ERROR: Bundle org.ops4j.pax.logging.pax-logging-service [3] Error starting
mvn:org.ops4j.pax.logging/pax-logging-service/1.6.3
(org.osgi.framework.BundleException: Activator start error in bundle
org.ops4j.pax.logging.pax-logging-service [3].)
java.lang.NoClassDefFoundError: org/apache/log4j/PaxLoggingConfigurator
        at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.configureDefaults(PaxLoggingServiceImpl.java:251)
        at
org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.<init>(PaxLoggingServiceImpl.java:61)
        at
org.ops4j.pax.logging.service.internal.Activator.start(Activator.java:108)
        at
org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629)
        at org.apache.felix.framework.Felix.activateBundle(Felix.java:1842)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1759)
        at
org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1163)
        at
org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
        at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.ClassNotFoundException:
org.apache.log4j.PaxLoggingConfigurator not found by
org.ops4j.pax.logging.pax-logging-api [4]
        at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:787)
        at
org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
        at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at
org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)
        at
org.apache.felix.framework.resolver.WireImpl.getClass(WireImpl.java:99)
        at
org.apache.felix.framework.ModuleImpl.searchImports(ModuleImpl.java:1390)
        at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:722)
        at
org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)
        at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 9 more

Then I checked which bundle this package export:

karaf@root> packages:exports | grep 'org.apache.log4j'
     4 org.apache.log4j; version=1.2.15
     4 org.apache.log4j.spi; version=1.2.15
     4 org.apache.log4j.xml; version=1.2.15

Bundle [4] is 'org.ops4j.pax.logging.pax-logging-api'. Then I looked into
this bundle:

christian-muellers-macbook-pro:Downloads cmueller$ jar -tvf
pax-logging-api-1.6.3.jar
-- snip --
  3882 Wed Jun 29 17:49:56 CEST 2011
org/apache/juli/logging/internal/JuliLogger.class
     0 Wed Jun 29 17:49:58 CEST 2011 org/apache/log4j/
  4233 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/Category.class
  3440 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/Level.class
  7527 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/Logger.class
  1929 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/MDC.class
  1032 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/NDC.class
  2749 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/Priority.class
   895 Wed Jun 29 17:49:56 CEST 2011
org/apache/log4j/PropertyConfigurator.class
     0 Wed Jun 29 17:49:58 CEST 2011 org/apache/log4j/helpers/
   621 Wed Jun 29 17:49:56 CEST 2011
org/apache/log4j/helpers/ThreadLocalMap.class
     0 Wed Jun 29 17:49:58 CEST 2011 org/apache/log4j/internal/
  1880 Wed Jun 29 17:49:56 CEST 2011
org/apache/log4j/internal/MessageFormatter.class
     0 Wed Jun 29 17:49:58 CEST 2011 org/apache/log4j/spi/
   126 Wed Jun 29 17:49:56 CEST 2011 org/apache/log4j/spi/Configurator.class
   208 Wed Jun 29 17:49:56 CEST 2011
org/apache/log4j/spi/LoggerFactory.class
     0 Wed Jun 29 17:49:58 CEST 2011 org/apache/log4j/xml/
   923 Wed Jun 29 17:49:56 CEST 2011
org/apache/log4j/xml/DOMConfigurator.class
     0 Wed Jun 29 17:49:58 CEST 2011 org/knopflerfish/
-- snap --

There is no class 'PaxLoggingConfigurator'... :-(

Any help is very appreciated.

Best,
Christian
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to