Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 减小JEE项目的war文件大小_Java_Maven_Apache Spark_War_Hadoop2 - Fatal编程技术网

Java 减小JEE项目的war文件大小

Java 减小JEE项目的war文件大小,java,maven,apache-spark,war,hadoop2,Java,Maven,Apache Spark,War,Hadoop2,我是大数据领域的新手,我的任务是减少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]

我是大数据领域的新手,我的任务是减少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侦听器scala jar文件作为maven依赖项,它的(scala jar文件)主scala类是从Java类调用的。JEE war文件部署在wildfly服务器中,启动时调用scala jar文件的主类。当wildfly服务器运行时,parallely spark和hadoop必须运行,因为需要将xml文件添加到hdfs目录中,一旦调用scala main类并触发该事件,spark将处理该事件以在wildfly服务器终端中打印输出(架构spark在hadoop之上运行)

为了减小war大小,在将这些模块添加到$WILDFLY_HOME/modules/system/layers/base之后,向所有pom依赖项添加了范围标记,并将所需的模块添加到jboss-deployment-structure.xml,并将以下标记添加到maven war插件以排除war文件的lib文件夹

enter code here
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
enter code here
在此处输入代码
WEB-INF/lib/*.jar
在这里输入代码
因此,实际的战争规模(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
在此处输入代码
log4j
log4j
1.2.17
假如
在这里输入代码

您可能不是指J2EE,它已经过时了大概15年……是的,谢谢,我指的是Java企业版项目,它被称为JEE而不是J2EE(J2EE是由Java版本2产生的),对吗?谢谢@J Fabian Meier提供的信息。我猜您以错误的方式配置了模块。另外,为什么要减小war文件的文件大小?只要不在多个应用程序中使用这些库,将这些依赖项作为模块包含就没有多大意义。这只是将它们放在构建过程之外,这很可能是一个坏主意,因为每次迭代都必须重新配置WildFly。@maio290“另外,为什么要减小war文件的文件大小?”:使客户端能够快速下载文件。将这些依赖项添加到wildfly服务器中的模块意味着将它们添加到wildfly服务器类路径,对吗?我认为将这些模块放在类路径中会减少lib文件夹的大小,因为pom依赖项在部署到wildfly服务器时会落入target/WEB-INF/lib中。如果这种方法不好,你能告诉我如何减少war文件的大小吗?因为我已经为此挣扎了两周了。有人能解决这个错误吗?