Tomcat一直在给我一个关于编译错误的误报

时间:2016-04-26 17:36:03

标签: java tomcat intellij-idea gradle

我使用的是IntelliJ IDEA 15.0.4,Apache Tomcat 7.0.68和JDK 1.8.0-74。

我的Java项目在IntelliJ中成功编译。但是,每当我部署爆炸的WAR时,我都会从Tomcat中收到此错误:

Θ(n log n)

我的班级看起来像这样:

SEVERE: Error configuring application listener of class com.myCompany.init.Log4jListener
java.lang.Error: Unresolved compilation problems: 
    The import org.apache.log4j cannot be resolved
    ...(stack trace removed for brevity)

import java.util.PropertyResourceBundle; import java.util.ResourceBundle; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import org.apache.log4j.helpers.Loader; import com.myCompany.AbstractEnvironment; public class Log4jListener implements ServletContextListener { private static final String KEY_EMAIL = "Alert"; private static final String SYSTEM_KEY_EMAIL = "Alert"; private static final String PROPERTY_FILE = "properties.environment"; @Override public void contextDestroyed(ServletContextEvent sce) { // nothing to do } @Override public void contextInitialized(ServletContextEvent sce) { final PropertyResourceBundle bundle = (PropertyResourceBundle) ResourceBundle.getBundle(PROPERTY_FILE); final String emailInfo = AbstractEnvironment.getProperty(bundle, KEY_EMAIL); System.setProperty(SYSTEM_KEY_EMAIL, emailInfo); PropertyConfigurator.configure(Loader.getResource("properties/log4j.properties")); final Logger logger = LogManager.getLogger(Log4jListener.class); logger.debug("Logger Initialized"); } } 包来自Gradle依赖项,它包含在我的项目中:

log4j dependency

...而且,在我的项目的其他类中,我已经从同一个类中实例化了一个org.apache.log4j对象,它并没有抱怨它。

更有趣的是,当一个同事在他的计算机上检查我的(同样的)项目时,他没有得到这个错误,使用相同版本的IDEA,JDK和Tomcat。

IDEA没有告诉我我有任何Java错误。我做了Gradle Log4jclean任务。我在IntelliJ中做了build。我在IntelliJ中重建了工件。我在Tomcat服务器上删除并重新添加了工件,但仍然遇到了同样的错误。

这让我相信这个错误不正确并且可能是误报,因为同样的项目在我的同事的计算机上工作。有什么想法吗?

0 个答案:

没有答案