为什么我会收到此 FileNotFoundException,我该如何解决?
Why am I receiving this FileNotFoundException and how can I resolve it?
我正在尝试在我的 tomcat 服务器上实施 Log4J 日志记录(我们在本地环境中已准备就绪,我正准备将我们的服务迁移到 AWS)。我已遵循 instructions found in the Tomcat7 documentation 并将所有内容都放在正确的位置。当我尝试启动 Tomcat 时,我在日志中收到 FileNotFound
异常并且应用程序无法启动。
Configuration error
java.io.FileNotFoundException: /usr/share/tomcat7/conf/logging.properties (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at java.io.FileInputStream.<init>(FileInputStream.java:101)
at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:466)
at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:311)
at java.util.logging.LogManager.run(LogManager.java:320)
at java.util.logging.LogManager.run(LogManager.java:318)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:318)
at java.util.logging.LogManager.getLogManager(LogManager.java:300)
at java.util.logging.Logger.<init>(Logger.java:265)
at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:1468)
at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:1466)
at java.util.logging.LogManager.run(LogManager.java:204)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.<clinit>(LogManager.java:181)
at java.util.logging.Logger.demandLogger(Logger.java:339)
at java.util.logging.Logger.getLogger(Logger.java:393)
at org.apache.juli.logging.impl.Jdk14Logger.getLogger(Jdk14Logger.java:164)
at org.apache.juli.logging.impl.Jdk14Logger.<init>(Jdk14Logger.java:55)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.juli.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1025)
at org.apache.juli.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:844)
at org.apache.juli.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:541)
at org.apache.juli.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292)
at org.apache.juli.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269)
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:657)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:49)
我怀疑这是因为我们的 Tomcat7 配置有些不标准,但 AWS 上的初始设置是由一位不再对我有用的顾问执行的。我在哪里可以查看以及我应该检查什么来纠正这个问题?
好的答案不应该指示我在 /usr/share/tomcat7/conf/
中放置一个 logging.properties
文件,因为这不是我现有配置的工作方式(我在那里没有这个问题)并且 tomcat7 文档明确告诉用户从 ../conf/
中删除 logging.properties
,除非 [=25] 中没有说明需要它=] 文档。
问题似乎与 tomcat7
bash shell 脚本有关(由上述顾问编写或更新)。该脚本被硬编码为在 Java 选项 (-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties"
) 中检查 logging.properties
文件。
从 tomcat7 脚本中删除此行已更正问题。
我正在尝试在我的 tomcat 服务器上实施 Log4J 日志记录(我们在本地环境中已准备就绪,我正准备将我们的服务迁移到 AWS)。我已遵循 instructions found in the Tomcat7 documentation 并将所有内容都放在正确的位置。当我尝试启动 Tomcat 时,我在日志中收到 FileNotFound
异常并且应用程序无法启动。
Configuration error
java.io.FileNotFoundException: /usr/share/tomcat7/conf/logging.properties (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at java.io.FileInputStream.<init>(FileInputStream.java:101)
at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:466)
at org.apache.juli.ClassLoaderLogManager.readConfiguration(ClassLoaderLogManager.java:311)
at java.util.logging.LogManager.run(LogManager.java:320)
at java.util.logging.LogManager.run(LogManager.java:318)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.readPrimordialConfiguration(LogManager.java:318)
at java.util.logging.LogManager.getLogManager(LogManager.java:300)
at java.util.logging.Logger.<init>(Logger.java:265)
at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:1468)
at java.util.logging.LogManager$RootLogger.<init>(LogManager.java:1466)
at java.util.logging.LogManager.run(LogManager.java:204)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.logging.LogManager.<clinit>(LogManager.java:181)
at java.util.logging.Logger.demandLogger(Logger.java:339)
at java.util.logging.Logger.getLogger(Logger.java:393)
at org.apache.juli.logging.impl.Jdk14Logger.getLogger(Jdk14Logger.java:164)
at org.apache.juli.logging.impl.Jdk14Logger.<init>(Jdk14Logger.java:55)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.juli.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1025)
at org.apache.juli.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:844)
at org.apache.juli.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:541)
at org.apache.juli.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:292)
at org.apache.juli.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:269)
at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:657)
at org.apache.catalina.startup.Bootstrap.<clinit>(Bootstrap.java:49)
我怀疑这是因为我们的 Tomcat7 配置有些不标准,但 AWS 上的初始设置是由一位不再对我有用的顾问执行的。我在哪里可以查看以及我应该检查什么来纠正这个问题?
好的答案不应该指示我在 /usr/share/tomcat7/conf/
中放置一个 logging.properties
文件,因为这不是我现有配置的工作方式(我在那里没有这个问题)并且 tomcat7 文档明确告诉用户从 ../conf/
中删除 logging.properties
,除非 [=25] 中没有说明需要它=] 文档。
问题似乎与 tomcat7
bash shell 脚本有关(由上述顾问编写或更新)。该脚本被硬编码为在 Java 选项 (-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties"
) 中检查 logging.properties
文件。
从 tomcat7 脚本中删除此行已更正问题。