簡體   English   中英

Weblogic java.lang.ClassNotFoundException:org.apache.log4j.Logger-Maven項目

[英]Weblogic java.lang.ClassNotFoundException: org.apache.log4j.Logger - Maven project

我有一個帶有某些EJB的簡單maven ,並且嘗試將其部署到weblogic服務器。 這就是我嘗試初始化Logger

import org.apache.log4j.Logger;

@Stateless
@LocalBean
public class MainDaoEJB implements MainDaoEJBRemote {

    final static Logger log = Logger.getLogger(MainDaoEJB.class.getName());

沒什么特別的。

這是我的pom.xml相關部分的樣子:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>

沒有整個記錄器部分,我可以構建我的項目。 但是關於那部分,我得到了這個例外:

org.eclipse.core.runtime.CoreException: Module named 'XYZ' failed to redeploy. See Error Log view for more detail.
    at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.redeploy(WlsJ2EEDeploymentHelper.java:1029)
    at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.redeploy(WlsJ2EEDeploymentHelper.java:866)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishWeblogicModules(WeblogicServerBehaviour.java:1493)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishToServer(WeblogicServerBehaviour.java:944)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishOnce(WeblogicServerBehaviour.java:735)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publish(WeblogicServerBehaviour.java:584)
    at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
    at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3172)
    at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Contains: weblogic.application.ModuleException: java.lang.ClassNotFoundException: org.apache.log4j.Logger
java.lang.Exception: Exception received from deployment driver. See Error Log view for more detail.
    at oracle.eclipse.tools.weblogic.server.internal.DeploymentProgressListener.watch(DeploymentProgressListener.java:193)
    at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.redeploy(WlsJ2EEDeploymentHelper.java:1011)
    at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.redeploy(WlsJ2EEDeploymentHelper.java:866)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishWeblogicModules(WeblogicServerBehaviour.java:1493)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishToServer(WeblogicServerBehaviour.java:944)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publishOnce(WeblogicServerBehaviour.java:735)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.publish(WeblogicServerBehaviour.java:584)
    at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
    at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3172)
    at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: weblogic.application.ModuleException: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)
    at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
    at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:175)
    at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:170)
    at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:80)
    at weblogic.work.ContextWrap.run(ContextWrap.java:40)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:357)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:318)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:186)
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
    at java.lang.Class.getDeclaredFields(Class.java:1916)
    at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.getFields(BaseJ2eeAnnotationProcessor.java:1104)
    at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.getFields(BaseJ2eeAnnotationProcessor.java:1097)
    at weblogic.j2ee.dd.xml.BaseJ2eeAnnotationProcessor.processJ2eeAnnotations(BaseJ2eeAnnotationProcessor.java:102)
    at weblogic.j2ee.dd.xml.J2eeAnnotationProcessor.processJ2eeAnnotations(J2eeAnnotationProcessor.java:39)
    at weblogic.ejb.container.metadata.EjbAnnotationProcessor.processSessionAnnotations(EjbAnnotationProcessor.java:940)
    at weblogic.ejb.container.metadata.EjbAnnotationProcessor.processAnnotations(EjbAnnotationProcessor.java:287)
    at weblogic.ejb.container.metadata.EjbDescriptorReaderImpl.processAnnotations(EjbDescriptorReaderImpl.java:387)
    at weblogic.ejb.container.deployer.EJBMetadataHandler.processAnnotations(EJBMetadataHandler.java:157)
    at weblogic.ejb.container.deployer.EJBMetadataHandler.processAnnotations(EJBMetadataHandler.java:152)
    at weblogic.ejb.container.deployer.EJBModule.processAnnotations(EJBModule.java:178)
    at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:404)
    at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:295)
    at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:285)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
    at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:109) 

我該怎么辦? 謝謝!

采用:

私有靜態最終Logger LOGGER = LoggerFactory.getLogger(MainDaoEJB.class);

通過stacktrace,我看到您正在通過Eclipse進行部署。 確保從項目配置中將log4j庫包含在部署程序集條目中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM