Sorry about more than a year delay. I just ran into the same issue and found your mail. It should be fixed now by http://svn.apache.org/viewvc?rev=1809434&view=rev which will be part of TC 9.0.1. I also plan to backport this to TC 8.5 (at least).

I have not chosen to do a Multi-Release jar but instead used a simple static check for Java 9.

Regards,

Rainer

Am 28.07.2016 um 15:07 schrieb Chris Hegarty:
Hi,

The following exception can be seen when, running with JDK 9 b115 ( early 
access )
and shutting down the Tomcat server. The issue is that the code in
org.apache.juli.ClassLoaderLogManager.readConfiguration() expects to find the
‘logging.properties' file in the ‘lib' directory of the JRE image. This is not 
the case in
JDK 9, it has been moved to the ‘conf' directory of the image. See the "New 
run-time
image structure” of JEP 220 [1] for details of this.

The code can be simply updated to look in the ‘conf’ directory, or 
alternatively can
select between ‘conf’ and ‘lib’ if required to run on multiple releases.

Configuration error
java.io.FileNotFoundException: 
/opt/jdk-9.jdk_b115/Contents/Home/lib/logging.properties (No such file or 
directory)
        at java.io.FileInputStream.open0(java.base@9-ea/Native Method)
        at java.io.FileInputStream.open(java.base@9-ea/FileInputStream.java:195)
        at 
java.io.FileInputStream.<init>(java.base@9-ea/FileInputStream.java:138)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:479)
        at 
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:402)
        at 
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:398)
        at java.security.AccessController.doPrivileged(java.base@9-ea/Native 
Method)
        at 
org.apache.juli.ClassLoaderLogManager.getClassLoaderInfo(ClassLoaderLogManager.java:398)
        at 
org.apache.juli.ClassLoaderLogManager.addLogger(ClassLoaderLogManager.java:136)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:507)
        at 
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:402)
        at 
org.apache.juli.ClassLoaderLogManager$2.run(ClassLoaderLogManager.java:398)
        at java.security.AccessController.doPrivileged(java.base@9-ea/Native 
Method)
        at 
org.apache.juli.ClassLoaderLogManager.getClassLoaderInfo(ClassLoaderLogManager.java:398)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:493)
        at 
org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:309)
        at 
java.util.logging.LogManager.readPrimordialConfiguration(java.logging@9-ea/LogManager.java:437)
        at 
java.util.logging.LogManager.access$800(java.logging@9-ea/LogManager.java:156)
        at 
java.util.logging.LogManager$2.run(java.logging@9-ea/LogManager.java:387)
        at java.security.AccessController.doPrivileged(java.base@9-ea/Native 
Method)
        at 
java.util.logging.LogManager.ensureLogManagerInitialized(java.logging@9-ea/LogManager.java:380)
        at 
java.util.logging.LogManager.getLogManager(java.logging@9-ea/LogManager.java:422)
        at 
java.util.logging.SimpleFormatter.getLoggingProperty(java.logging@9-ea/SimpleFormatter.java:63)
        at 
jdk.internal.logger.SimpleConsoleLogger$Formatting.getSimpleFormat(java.base@9-ea/SimpleConsoleLogger.java:491)
        at 
jdk.internal.logger.SurrogateLogger.getSimpleFormat(java.base@9-ea/SurrogateLogger.java:62)
        at 
java.util.logging.SimpleFormatter.<init>(java.logging@9-ea/SimpleFormatter.java:67)
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(java.base@9-ea/Native
 Method)
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(java.base@9-ea/NativeConstructorAccessorImpl.java:62)
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(java.base@9-ea/DelegatingConstructorAccessorImpl.java:45)
        at 
java.lang.reflect.Constructor.newInstance(java.base@9-ea/Constructor.java:453)
        at java.lang.Class.newInstance(java.base@9-ea/Class.java:550)
        at org.apache.juli.logging.DirectJDKLog.<clinit>(DirectJDKLog.java:49)
        at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:115)
        at org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:137)
        at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:188)
        at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:52)

-Chris.

[1] http://openjdk.java.net/jeps/220

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to