Hello!
How I can set "CLASSPATH" variable for remote container?

I try to replace JULI with Slf4j and Logback for remote container, but I 
receive exception if I run tests:

...
Handler error
java.lang.ClassNotFoundException: org.slf4j.bridge.SLF4JBridgeHandler
        at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:601)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:538)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:336)
        at 
java.logging/java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:445)
        at java.logging/java.util.logging.LogManager$2.run(LogManager.java:394)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at 
java.logging/java.util.logging.LogManager.ensureLogManagerInitialized(LogManager.java:382)
        at 
java.logging/java.util.logging.LogManager.getLogManager(LogManager.java:430)
        at java.logging/java.util.logging.Logger.demandLogger(Logger.java:648)
        at java.logging/java.util.logging.Logger.getLogger(Logger.java:717)
        at java.logging/java.util.logging.Logger.getLogger(Logger.java:701)
        at 
org.apache.tomee.jul.formatter.log.JULLogger.<init>(JULLogger.java:67)
        at 
org.apache.tomee.jul.formatter.log.ReloadableLog$ReloadableLogHandler.initDelegate(ReloadableLog.java:93)
        at 
org.apache.tomee.jul.formatter.log.ReloadableLog$ReloadableLogHandler.<init>(ReloadableLog.java:54)
        at 
org.apache.tomee.jul.formatter.log.ReloadableLog.newLog(ReloadableLog.java:37)
        at org.apache.tomee.jul.formatter.log.TomEELog.<init>(TomEELog.java:79)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:134)
        at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:153)
        at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:208)
        at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52)
...

1. I have put "setenv.sh" in "src/test/tomee/bin" project with content:

CLASSPATH=$CATALINA_HOME/lib/jul-to-slf4j-1.7.2.jar:\
$CATALINA_HOME/lib/slf4j-api-1.7.2.jar:\
$CATALINA_HOME/lib/logback-classic-1.0.6.jar:\
$CATALINA_HOME/lib/logback-core-1.0.6.jar:\
$CATALINA_HOME/conf/logback/

2. I specified the necessary properties in arquillian.xml:

<container qualifier="tomee" default="true">
        <configuration>
            ...
            <property name="additionalLibs">
                remove:slf4j-jdk14-1.7.21.jar
            </property>
            <property name="lib">target/additional-libs</property>
            <property name="bin">src/test/tomee/bin</property>
            <property name="conf">src/test/tomee/conf</property>
            ...
        </configuration>
</container>

- all declared libraries in (1) are in "target/additional-libs";
- config file for Logback is in "$CATALINA_HOME/conf/logback/";
- all necessary dependencies in pom.xml are declared.

"setenv.sh" appeared in $CATALINA_HOME/bin but, looks like, don't used in 
bootstrap and not set  "CLASSPATH" variable...

-- 
WIth best regards,
Makarov Alexey

Reply via email to