3 pièce(s) jointe(s)
NoClassDefFoundError pour Log4J
Bonjour,
j'ai créé un enterprise application project sous eclipse Luna et j'utilise JBoss eap 6.2 comme serveur.
J'ai une classe où j'utilise log4j
Voici ma classe
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
@Stateless(name = "LibrarySessionBean")
@Local(LibrarySessionBeanLocal.class)
@Remote(LibrarySessionBeanRemote.class)
@LocalBean
public class LibrarySessionBean implements LibrarySessionBeanRemote, LibrarySessionBeanLocal{
private List<String> bookShelf;
static Logger log = LogManager.getLogger(LibrarySessionBean.class.getName());
/**
* Default constructor.
*/
public LibrarySessionBean() {
// TODO Auto-generated constructor stub
log.info("object this.toString=" + this.toString());
log.info("constructeur LibrarySessionBean appele");
bookShelf = new ArrayList<String>();
}
@Override
public void addBook(String bookname) {
log.info("object this.toString=" + this.toString());
log.info("addbook appele");
bookShelf.add(bookname);
}
@Override
public List<String> getBooks() {
return bookShelf;
}
@Override
public void methodCalledToLoadEJB() {
log.info("methodCalledToLoadEJB appele");
}
@Override
@PreDestroy
public void givingEndState() {
log.info("givingEndState object this.toString=" + this.toString());
for (String book : bookShelf) {
log.info("book found =" + book);
}
}
@Override
@PostConstruct
public void givingStartState() {
log.info("givingStartState object this.toString=" + this.toString());
}
} |
Voici la structure de mon projet. Il y a un module EJB: EJBTutorialEJB et un module web: EJBTutorialWeb. Dans les 2 modules, j'utilise des log log4j
Pièce jointe 158548
J'ai inséré les library log4j dans les librairies du projet (add library -> user Library)
Pièce jointe 158549
J'ai inséré mon fichier log4j.properties par l'intermédiaire de Link Source
Pièce jointe 158550
Or au démarrage de jBoss, j'ai le message d'erreur suivant.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
11:49:39,412 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialEJB.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialEJB.jar".POST_MODULE: JBAS018733: N a pas pu traiter la phase POST_MODULE de subdeployment "EJBTutorialEJB.jar" of deployment "EJBTutorial.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
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_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
Caused by: java.lang.RuntimeException: JBAS018757: Erreur d'obtention d'informations réflectives pour class com.tutorialspoint.sessionbean.stateless.LibrarySessionBean pour le ClassLoader (Chargeur de classe) ModuleClassLoader for Module "deployment.EJBTutorial.ear.EJBTutorialEJB.jar:main" from Service Module Loader
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:72) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
... 5 more
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/logging/log4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.7.0_60]
at java.lang.Class.privateGetDeclaredFields(Class.java:2436) [rt.jar:1.7.0_60]
at java.lang.Class.getDeclaredFields(Class.java:1806) [rt.jar:1.7.0_60]
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:68) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger from [Module "deployment.EJBTutorial.ear.EJBTutorialEJB.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2]
... 15 more
11:49:39,871 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialWeb.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialWeb.war".POST_MODULE: JBAS018733: N'a pas pu traiter la phase POST_MODULE de subdeployment "EJBTutorialWeb.war" of deployment "EJBTutorial.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
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_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
Caused by: java.lang.RuntimeException: JBAS018757: Erreur d'obtention d'informations réflectives pour class com.tutorialspoint.servlet.ServletCallSessionBean pour le ClassLoader (Chargeur de classe) ModuleClassLoader for Module "deployment.EJBTutorial.ear.EJBTutorialWeb.war:main" from Service Module Loader
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:72) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
... 5 more
Caused by: java.lang.NoClassDefFoundError: Lorg/apache/logging/log4j/Logger;
at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.7.0_60]
at java.lang.Class.privateGetDeclaredFields(Class.java:2436) [rt.jar:1.7.0_60]
at java.lang.Class.getDeclaredFields(Class.java:1806) [rt.jar:1.7.0_60]
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:68) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger from [Module "deployment.EJBTutorial.ear.EJBTutorialWeb.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar:1.3.0.Final-redhat-2]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar:1.3.0.Final-redhat-2]
... 15 more
11:49:40,988 INFO [org.jboss.as.server] (ServerService Thread Pool -- 35) JBAS018559: Déploiement de "EJBTutorial.ear" (runtime-name: "EJBTutorial.ear")
11:49:40,990 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Rapport de statut de service
JBAS014777: Services qui n'ont pas pu démarrer : service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialEJB.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialEJB.jar".POST_MODULE: JBAS018733: N'a pas pu traiter la phase POST_MODULE de subdeployment "EJBTutorialEJB.jar" of deployment "EJBTutorial.ear"
service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialWeb.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."EJBTutorial.ear"."EJBTutorialWeb.war".POST_MODULE: JBAS018733: N'a pas pu traiter la phase POST_MODULE de subdeployment "EJBTutorialWeb.war" of deployment "EJBTutorial.ear"
11:49:41,687 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: L'interface de gestion http écoute sur http://127.0.0.1:9990/management |
Je ne comprends pas l'erreur. Mes imports fonctionnent bien mais le systeme semble ne pas trouver mes classes log4j au chargement. Auriez-vous une idée ? Merci d'avance pour votre aide