首页 > 解决方案 > 减少 JEE 项目的 war 文件大小

问题描述

我是大数据领域的初学者,我的任务是减少 JEE 项目的战争规模。我收到以下错误:

ERROR [stderr] (ServerService Thread Pool -- 81) log4j:ERROR A "org.apache.log4j.xml.DOMConfigurator" object is not assignable to a "org.apache.log4j.spi.Configurator" variable.
ERROR [stderr] (ServerService Thread Pool -- 81) log4j:ERROR The class "org.apache.log4j.spi.Configurator" was loaded by 
ERROR [stderr] (ServerService Thread Pool -- 81) log4j:ERROR [ModuleClassLoader for Module "com.bigdata.hdfs.listener.hdfs-listener" from local module loader @56ef9176 (finder: local module finder @4566e5bd (roots: /opt/wildfly-20.0.1.Final/modules,/opt/wildfly-20.0.1.Final/modules/system/layers/base))] whereas object of type 
ERROR [stderr] (ServerService Thread Pool -- 81) log4j:ERROR "org.apache.log4j.xml.DOMConfigurator" was loaded by [ModuleClassLoader for Module "org.jboss.log4j.logmanager" version 1.2.0.Final from local module loader @56ef9176 (finder: local module finder @4566e5bd (roots: /opt/wildfly-20.0.1.Final/modules,/opt/wildfly-20.0.1.Final/modules/system/layers/base))].
ERROR [stderr] (ServerService Thread Pool -- 81) log4j:ERROR Could not instantiate configurator [org.apache.log4j.xml.DOMConfigurator].
17:31:03,059 ERROR [stderr] (ServerService Thread Pool -- 81) log4j:WARN No appenders could be found for logger (com.bigdata.hdfs.listener.HdfsListenerMain$).
ERROR [stderr] (ServerService Thread Pool -- 81) log4j:WARN Please initialize the log4j system properly.

这个 JEE 项目的主要思想是,它在 pom.xml 中添加了一个 hdfs-listener scala jar 文件作为 maven 依赖项,其(scala jar 文件)主 scala 类是从 Java 类调用的。JEE 战争文件部署在wildfly服务器中,并在启动时调用scala jar文件的主类。当 wildfly 服务器运行时,并行 spark 和 hadoop 必须运行,因为需要将 xml 文件添加到 hdfs 目录,一旦调用 scala 主类并通过触发该事件,spark 对其进行处理以在Wildfly 服务器终端(Architecture-Spark 在 Hadoop 之上运行)。

为了减少战争规模,将范围标签添加到所有 pom 依赖项,并在将这些模块添加到 $WILDFLY_HOME/modules/system/layers/base 并添加以下标签后将所需模块添加到 jboss-deployment-structure.xml 到maven-war-plugin 排除war文件的lib文件夹。

enter code here
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
enter code here

因此,121.4mb 的实际战争大小减少到 4.9kb

以下是 log4j 的 pom 依赖项:

enter code here
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <scope>provided</scope>
</dependency>
enter code here

标签: javamavenapache-sparkwarhadoop2

解决方案


推荐阅读