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