Maven jboss服务器无法使用Log4J加载WAR
我试图在本地jboss EAP 6.1服务器运行的Maven项目中使用Log4J。以下是我的pom.xml:Maven jboss服务器无法使用Log4J加载WAR,maven,log4j,jboss-eap-6,Maven,Log4j,Jboss Eap 6,我试图在本地jboss EAP 6.1服务器运行的Maven项目中使用Log4J。以下是我的pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>pro</artifactId>
<version>0.0.2-SNAPSHOT</version>
</parent>
<groupId>com.company.test</groupId>
<artifactId>project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>com.company.test.project</name>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
</dependencies>
</project>
编辑:这是我创建的jboss-deployment-structure.xml文件:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>
在EAP 6.3中修复了一个错误,该错误将正确的依赖项添加到EAP中使用的log4j模块中。如果您添加以下依赖项$JBOSS_HOME/modules/system/layers/base/org/JBOSS/log4j/logmanager/main/module.xml
,它应该会修复它
另一个选项是使用排除log4j并使用您提供的版本。我不知道您的整个开发环境。但看起来,您已经在导入一些log4j模块(“org.jboss.log4j.logmanager:main”)。这意味着war中的log4j模块不用于解析xml配置。稍后,module-log4j找不到类AddressException,因为它无法访问您的war库。请添加jboss-deployment-structure.xml或Meta-inf/Manifest.MF依赖项,取决于您定义导入的位置。我创建了jboss-deployment-structure.xml并将其放在webapp/WEB-INF下。该文件出现以下错误:cvc复杂类型。2.3:元素“deployment”不能有字符[children],因为该类型的内容类型是element only.jboss deployment structure.xml/com.company.test.project/src/main/webapp/WEB-INF第2行xml问题。我将粘贴上面问题中的文件内容。不确定为什么它不起作用。我刚测试过,它对我来说很好。这是IDE中的错误吗?是的,在IDE中。我使用的是JBossDeveloperStudio 7.1.1,我认为如果删除
xmlns
部分,它可能会工作。它就是找不到模式。是的,就是这样。我删除了namespace属性,该文件现在在IDE中没有错误。谢谢
15:07:17,389 ERROR [org.jboss.msc.service.fail] (MSC service thread
1-2) MSC000001: Failed to start service
jboss.deployment.unit."com.company.test.project.war".POST_MODULE:
org.jboss.msc.service.StartException in service
jboss.deployment.unit."com.company.test.project.war".POST_MODULE:
JBAS018733: Failed to process phase POST_MODULE of deployment
"com.company.test.project.war" at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127)
[jboss-as-server-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_55] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_55] at java.lang.Thread.run(Thread.java:745)
[rt.jar:1.7.0_55] Caused by: java.lang.NoClassDefFoundError:
javax/mail/internet/AddressException at
java.lang.Class.getDeclaredConstructors0(Native Method)
[rt.jar:1.7.0_55] at
java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
[rt.jar:1.7.0_55] at java.lang.Class.getConstructor0(Class.java:2803)
[rt.jar:1.7.0_55] at java.lang.Class.newInstance(Class.java:345)
[rt.jar:1.7.0_55] at
org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:247)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:176)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:191)
at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:523)
at
org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:492)
at
org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1001)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:867)
at
org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:794)
at
org.jboss.as.logging.LoggingDeploymentUnitProcessor.configure(LoggingDeploymentUnitProcessor.java:295)
[jboss-as-logging-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at
org.jboss.as.logging.LoggingDeploymentUnitProcessor.processDeploymentLogging(LoggingDeploymentUnitProcessor.java:176)
[jboss-as-logging-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at
org.jboss.as.logging.LoggingDeploymentUnitProcessor.deploy(LoggingDeploymentUnitProcessor.java:81)
[jboss-as-logging-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] at
org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120)
[jboss-as-server-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10] ...
5 more Caused by: java.lang.ClassNotFoundException:
javax.mail.internet.AddressException from [Module
"org.jboss.log4j.logmanager:main" from local module loader @b7e2544
(finder: local module finder @6c09941 (roots:
C:\Users\sobczakm\EAP-6.1\jboss-eap-6.1\modules,C:\Users\sobczakm\EAP-6.1\jboss-eap-6.1\modules\system\layers\soa,C:\Users\sobczakm\EAP-6.1\jboss-eap-6.1\modules\system\layers\sramp,C:\Users\sobczakm\EAP-6.1\jboss-eap-6.1\modules\system\layers\base))]
at
org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196)
[jboss-modules.jar:1.2.2.Final-redhat-1] at
org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444)
[jboss-modules.jar:1.2.2.Final-redhat-1] at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432)
[jboss-modules.jar:1.2.2.Final-redhat-1] at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374)
[jboss-modules.jar:1.2.2.Final-redhat-1] at
org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119)
[jboss-modules.jar:1.2.2.Final-redhat-1] ... 21 more
15:07:17,389 ERROR [org.jboss.as.server] (DeploymentScanner-threads -
1) JBAS015870: Deploy of deployment "com.company.test.project.war" was
rolled back with the following failure message: {"JBAS014671: Failed
services" =>
{"jboss.deployment.unit.\"com.company.test.project.war\".POST_MODULE"
="org.jboss.msc.service.StartException in service jboss.deployment.unit.\"com.company.test.project.war\".POST_MODULE:
JBAS018733: Failed to process phase POST_MODULE of deployment
\"com.company.test.project.war\"
Caused by: java.lang.NoClassDefFoundError: javax/mail/internet/AddressException
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException from [Module
\"org.jboss.log4j.logmanager:main\" from local module loader @b7e2544
(finder: local module finder @6c09941 (roots:
C:\\Users\\sobczakm\\EAP-6.1\\jboss-eap-6.1\\modules,C:\\Users\\sobczakm\\EAP-6.1\\jboss-eap-6.1\\modules\\system\\layers\\soa,C:\\Users\\sobczakm\\EAP-6.1\\jboss-eap-6.1\\modules\\system\\layers\\sramp,C:\\Users\\sobczakm\\EAP-6.1\\jboss-eap-6.1\\modules\\system\\layers\\base))]"}}
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>