严重:Begin事件抛出错误java.lang.ExceptionInInitializerError Intellij/Tomcat
我有一个新的项目,我想在Intellij工作。作为本地服务器,我们使用Tomcat7.0.68和JDK1.8 这是我在tomcat中的配置 lib/catalina/org/apache/catalina/startup/Authenticators.properties:严重:Begin事件抛出错误java.lang.ExceptionInInitializerError Intellij/Tomcat,java,tomcat,intellij-idea,catalina,Java,Tomcat,Intellij Idea,Catalina,我有一个新的项目,我想在Intellij工作。作为本地服务器,我们使用Tomcat7.0.68和JDK1.8 这是我在tomcat中的配置 lib/catalina/org/apache/catalina/startup/Authenticators.properties: NIGHTSHIFT=com.glit.swidA9O.v1.authenticator.nightshiftuthenticator conf/catalina.properties: common.loader=${c
NIGHTSHIFT=com.glit.swidA9O.v1.authenticator.nightshiftuthenticator
conf/catalina.properties:
common.loader=${catalina.base}/lib,${catalina.base}/lib/*.jar,/Users/Administrator/dev/server/apache-tomcat-7.0.68/shared/nightShift/*.jar,${catalina.home}/lib,${catalina.home}/lib,${catalina.home}/lib/*.jar
conf/context:
conf/server.xml
我们的问题
在本地tomcat服务器中,我们希望使用一个名为“夜班”的特定库。不幸的是,每次我们尝试使用intellij/tomcat构建应用程序时,都会出现以下错误:
这很有趣,因为如果我们尝试用eclipse构建应用程序,tomcat可以顺利运行,并且可以正确地构建项目
这些是我们为Intellij/Tomcat所做的设置:
这些是我的虚拟机选项(实际上我甚至不知道你是否需要它,只是以防万一):
-DLOG4J2-ROOT=/Users/Administrator/dev/PROJECT/data/logs
-Djava.security.auth.login.config=/Users/Administrator/dev/PROJECT/config/NightShift-config/common/NightShiftJAAS.conf
-Dpu8.config.path=/Users/Administrator/dev/PROJECT/config/NightShift-config
-Dpu8.configuration.id=A7U
-Dpu8.environment=ide
-Djava.util.logging.config.file=/Users/Administrator/dev/PROJECT/config/NightShift-config/log-config.properties
-Djava.security.manager
-Djava.security.policy=“/Users/Administrator/dev/server/apache-tomcat-7.0.68/conf/catalina.policy”
这就是我们的tomcat的样子:
“shared”里面有一个名为“nightshift”的文件夹,里面有我们在catalina.properties文件中提到的所有必需的.jar文件
在我们的工件中,我们没有包括“夜班”JAR,因为我们希望它安装在tomcat中,而不是我们的应用程序中。应用程序的日志初始化似乎有问题:
Caused by: java.util.NoSuchElementException
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:365)
at java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:323)
at java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:407)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:409)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at com.glit.swidPV4.v1.common.log.LogFactory.getInstance(LogFactory.java:32)
at com.glit.swidPV4.v1.common.log.LogFactory.getLog(LogFactory.java:42)
at com.glit.swidA7R.v1.businessdelegate.VerifierBDFactory.<clinit>(VerifierBDFactory.java:29)
... 75 more
由以下原因引起:java.util.NoSuchElementException
位于java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:365)
位于java.util.ServiceLoader$LazyIterator.access$700(ServiceLoader.java:323)
位于java.util.ServiceLoader$LazyIterator$2.run(ServiceLoader.java:407)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:409)
位于java.util.ServiceLoader$1.next(ServiceLoader.java:480)
位于com.glit.swidPV4.v1.common.log.LogFactory.getInstance(LogFactory.java:32)
在com.glit.swidPV4.v1.common.log.LogFactory.getLog(LogFactory.java:42)
位于com.glit.swidA7R.v1.businessdelegate.VerifierBDFactory。(VerifierBDFactory.java:29)
... 75多
看起来,它正在寻找一家不存在的服务提供商,但却未能妥善处理这一问题。这会导致运行时异常,该异常会级联到其他事物中
com.glit.swidPV4.v1.common.log.LogFactory
的源代码,了解它在寻找什么LogFactory
代码,使其更具弹性。。。或者抛出一个自定义异常,而不仅仅是用一个模糊的NoSuchElementException
进行轰炸不幸的是,每次尝试使用intellij/tomcat构建应用程序时,都会出现以下错误: 一个“解决方案”是切换到使用Maven或其他东西来构建WAR文件,并手动测试/部署它们,而不是依赖“闪亮的”Intellij集成工具 (无论如何,你不应该热部署到生产服务器中。这是一个糟糕的做法。你离破坏生产环境只有一步之遥。如果这只是一个开发/测试环境,那么养成在开发环境中以正确方式做事的习惯是一个好主意。)完整的stacktrace(有嵌套的异常)应该解释异常的原因。嗨,斯蒂芬:)Ups!我完全忘了把整个stacktrace放进去。我编辑了我的帖子,并添加了一个链接,可以让每个人浏览stacktrace.txt文件。它包含了编译器打印出来的所有内容。