IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

[EJB 3.1] Log4J dans un EJB


Sujet :

Java EE

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut [EJB 3.1] Log4J dans un EJB
    Bonjour à tous,

    Je voudrais créer un ejb (mon premier ) qui me log des informations sur mon serveur. Je voudrais utiliser l'API Log4J. Je travaille sur éclipse, j'ai donc créer un "Entreprise Application Projet".

    Voici la code du Session Bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.net.URL;
     
    import javax.annotation.PostConstruct;
    import javax.ejb.LocalBean;
    import javax.ejb.Singleton;
    import javax.ejb.Startup;
     
    import org.apache.log4j.Logger;
    import org.apache.log4j.xml.DOMConfigurator;
     
    /**
     * Session Bean implementation class Log4jStartupBean
     */
    @Singleton
    @LocalBean
    @Startup
    public class Log4jStartupBean {
     
    	private static final String LOG4J_XML = "/log4j.xml";
    	private Logger logger = null;
     
    	/**
             * Default constructor.
             */
    	public Log4jStartupBean() {
     
    	}
     
    	@PostConstruct
    	public void startup() {
     
    		URL url = this.getClass().getResource(LOG4J_XML);
     
    		if(url==null || url.getFile().length()==0){
    			throw new RuntimeException("Log4j config file "+ LOG4J_XML +" not found");
    		}
     
    		DOMConfigurator.configure(url);
    		logger = Logger.getLogger(this.getClass());
    		logger.info("logger initialized with " + LOG4J_XML + "...");
    	}
     
    	public void shutdown(){
    		logger.info("logger initialized with "+ LOG4J_XML + " shutdown");
    	}
    Ce code est inspiré de ce blog

    Mon problème est que lorsque je lance mon serveur, mon EJB démarre, mais j'ai une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    16:37:31,995 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=startup-singleton-initiator:topLevelUnit=EJB_TEST.jar,unit=EJB_TEST.jar,bean=Log4jStartupBean aliases=[startup-singleton-initiator:bean=Log4jStartupBean,topLevelUnit=EJB_TEST.jar,unit=EJB_TEST.jar] state=Create: java.lang.RuntimeException: Could not invoke PostConstruct on the newly created bean instance
    	at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.create(SingletonEJBInstanceManagerImpl.java:137) [:1.0.0-alpha-28]
    	at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.get(SingletonEJBInstanceManagerImpl.java:152) [:1.0.0-alpha-28]
    	at org.jboss.ejb3.singleton.deployer.StartupSingletonInitiator.start(StartupSingletonInitiator.java:84) [:1.0.0-alpha-28]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    	at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.0.GA]
    	at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.0.GA]
    	at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:202) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:894) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:641) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:182) [:2.2.0.GA]
    	at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:58) [:2.2.0.GA]
    	at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62) [:2.2.0.GA]
    	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1832) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1550) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1571) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1491) [:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:1983) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1076) [:2.2.0.GA]
    	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679) [:2.2.0.GA]
    	at org.jboss.system.server.profileservice.deployers.MainDeployerPlugin.process(MainDeployerPlugin.java:106) [:6.0.0.Final]
    	at org.jboss.profileservice.dependency.ProfileControllerContext$DelegateDeployer.process(ProfileControllerContext.java:143) [:0.2.2]
    	at org.jboss.profileservice.dependency.ProfileDeployAction.deploy(ProfileDeployAction.java:151) [:0.2.2]
    	at org.jboss.profileservice.dependency.ProfileDeployAction.installActionInternal(ProfileDeployAction.java:94) [:0.2.2]
    	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-kernel.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:379) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2044) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1083) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1322) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1246) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1139) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:939) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:654) [jboss-dependency.jar:2.2.0.GA]
    	at org.jboss.profileservice.dependency.ProfileActivationWrapper$BasicProfileActivation.start(ProfileActivationWrapper.java:190) [:0.2.2]
    	at org.jboss.profileservice.dependency.ProfileActivationWrapper.start(ProfileActivationWrapper.java:87) [:0.2.2]
    	at org.jboss.profileservice.dependency.ProfileActivationService.activateProfile(ProfileActivationService.java:215) [:0.2.2]
    	at org.jboss.profileservice.dependency.ProfileActivationService.activate(ProfileActivationService.java:159) [:0.2.2]
    	at org.jboss.profileservice.AbstractProfileService.activateProfile(AbstractProfileService.java:154) [:0.2.2]
    	at org.jboss.system.tools.ProfileServiceToolsFacade.addURI(ProfileServiceToolsFacade.java:233) [:6.0.0.Final]
    	at org.jboss.system.tools.LegacyDeploymentScannerAdapter.addURL(LegacyDeploymentScannerAdapter.java:140) [:6.0.0.Final]
    	at org.jboss.system.tools.DeploymentScanner.addURL(DeploymentScanner.java:91) [:6.0.0.Final]
    	at org.jboss.system.tools.DeploymentScanner.addURL(DeploymentScanner.java:83) [:6.0.0.Final]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157) [:6.0.0.GA]
    	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96) [:6.0.0.GA]
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) [:6.0.0.GA]
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:271) [:6.0.0.GA]
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:670) [:6.0.0.GA]
    	at org.jboss.system.server.jmx.MBeanServerWrapper.invoke(MBeanServerWrapper.java:138) [:6.0.0.Final (Build SVNTag:JBoss_6.0.0.Final date: 20101228)]
    	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(Unknown Source) [:1.6.0_24]
    	at javax.management.remote.rmi.RMIConnectionImpl.access$200(Unknown Source) [:1.6.0_24]
    	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(Unknown Source) [:1.6.0_24]
    	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(Unknown Source) [:1.6.0_24]
    	at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source) [:1.6.0_24]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) [:1.6.0_24]
    	at sun.rmi.transport.Transport$1.run(Unknown Source) [:1.6.0_24]
    	at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_24]
    	at sun.rmi.transport.Transport.serviceCall(Unknown Source) [:1.6.0_24]
    	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) [:1.6.0_24]
    	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) [:1.6.0_24]
    	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) [:1.6.0_24]
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [:1.6.0_24]
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [:1.6.0_24]
    	at java.lang.Thread.run(Unknown Source) [:1.6.0_24]
    Caused by: java.lang.RuntimeException: javax.ejb.EJBException: java.lang.RuntimeException: Log4j config file /log4j.xml not found
    	at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invokeCallback(AOPBasedSingletonContainer.java:1063) [:1.0.0-alpha-28]
    	at org.jboss.ejb3.EJBContainer.invokePostConstruct(EJBContainer.java:1396) [:1.7.17]
    	at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.postConstruct(AOPBasedSingletonContainer.java:760) [:1.0.0-alpha-28]
    	at org.jboss.ejb3.singleton.impl.container.SingletonEJBInstanceManagerImpl.create(SingletonEJBInstanceManagerImpl.java:133) [:1.0.0-alpha-28]
    	... 102 more
    Caused by: javax.ejb.EJBException: java.lang.RuntimeException: Log4j config file /log4j.xml not found
    	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:183) [:0.0.1]
    	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:251) [:0.0.1]
    	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:392) [:0.0.1]
    	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:211) [:0.0.1]
    	at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52) [:0.0.1]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) [:1.0.0.GA]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47) [:1.7.17]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90) [:1.1.3]
    	at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_31998357.invoke(InvocationContextInterceptor_z_setup_31998357.java) [:]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) [:1.0.1]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.ejb3.singleton.aop.impl.AOPBasedSingletonContainer.invokeCallback(AOPBasedSingletonContainer.java:1059) [:1.0.0-alpha-28]
    	... 105 more
    Caused by: java.lang.RuntimeException: Log4j config file /log4j.xml not found
    	at com.nodbox.ejb.log.Log4jStartupBean.startup(Log4jStartupBean.java:36) [:]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_24]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_24]
    	at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_24]
    	at org.jboss.ejb3.interceptors.aop.LifecycleCallbackBeanMethodInterceptor.invoke(LifecycleCallbackBeanMethodInterceptor.java:69) [:1.1.3]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56) [:1.7.17]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) [:1.0.3]
    	at org.jboss.aop.joinpoint.ConstructionInvocation.invokeNext(ConstructionInvocation.java:80) [jboss-aop.jar:2.2.1.GA]
    	at org.jboss.ejb3.singleton.aop.impl.ConstructionInvocationContextAdapter.proceed(ConstructionInvocationContextAdapter.java:106) [:1.0.0-alpha-28]
    	at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:247) [:0.0.1]
    	... 119 more
    Tout d'abord, je tiens à signaler que je n'ai pas du tout la même architecture que celle présenté dans le blog; Ensuite j'ai essayé de changer plusieurs fois le path du fichier ou alors de déplacer le fichier dans différents répertoires (META-INF par exemple) mais sans succès.

    Pouvez vous me dire d'où vient mon erreur?

    Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 74
    Par défaut
    pourquoi te compliques tu la vie ????

    log4j ou autre (je te le conseille) logback via slf4j savent exploiter un fichier de config directement dans le projet ou mieux dans une option de la jvm. qu'essayes tu de faire au juste ?
    mieux encore les levels de logback sont dirrectement modifiable dans la jconsole. Que du bonheur.

    http://www.slf4j.org/index.html
    http://logback.qos.ch/

    en entrée de chaque classe, tu fais cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    final static Logger logger = LoggerFactory.getLogger(CurrentClass.class);
    Et le tour est joué.

    Maintenant pour améliorer la chose, moi j'injecte les logger via CDI et un produces. Mais faut il utiliser le framework de CDI. Dis moi si tu veux en savoir plus.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Tout d'abord merci pour ta réponse. Après plusieurs heures de recherche, voilà ou j'en suis:

    J'ai laissé tombé log4J, et la solution que tu me proposes ne me convient pas non plus.

    Tout d'abord, pour ceux que ça intéresse voici les raisons pour lesquels mon programme précédent ne marchait pas:
    -lorsque j’utilisais la méthode getRessource(), je pensais que celui ci se référait à la racine du projet alors qu'il se réfère à la racine du package.


    Ensuite voici ce que je désire maintenant:
    Je voudrais utiliser le système de log proposé par JBoss (qui ressemble fortement à celui de Log4J) pour ainsi avoir une homogénéité dans mes log de mon serveur.

    Mais vu que j'aime compliquer les choses, je voudrais que chaque ejb déployer possède son propre fichier "jboss-logging.xml".

    Pour réaliser cela j'ai donc ajouter un nouveau fichier de conf en lui ajoutant un contexte. J'ai aussi modifié le fichier "logmanager-jboss-beans.xml".
    Voici un lien qui m'a aider: jboss

    Mon problème est que mon fichier de conf est bien charger par le server, car j'ai mon file appender qui se créé mais je n'arrive pas logger dessus.

    Comment faire pour que mon logger utilise la config présente dans l'ejb et non celle du serveur?

  4. #4
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 74
    Par défaut ???
    J'avoue vraiment avoir du mal à comprendre se que tu veux faire. au juste.
    J'ai du mal à croire que les framework de log ne colle pas nativement à ce que tu veux faire. Peux tu re-expliquer ce que tu veux faire exactement ? Le but, exemple de code etc..

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Je voudrais avoir un fichier de configuration logging par EJB en utilisant Log4J ou le nouveau système proposé par JBoss. Ce que propose JBoss, est de configurer tous ses log depuis le fichier "jboss-logging.xml" situé dans le dossier deploy.

    Lorsque je créer mon logger log4J et que je récupère ma configuration avec DOMConfigurator, mon logger se configure quand même avec le fichier de configuration situé dans le dossier deploy.

  6. #6
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 74
    Par défaut ok
    J'avais bien peur d'avoir compris... LOL

    Non sans rire, je vois pas ou est le problème, quand tu crées ton logger dans ta classe, tu lui donnes le nom de la classe, et dans ton fichier de configuration de log, tu configure tous les logger avec un appender différents s'il le faut et voilà.... Enfin en tous cas si c'est ce que tu veux faire...

    Dans ta classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    package monpackage;
    public class MaClass {
       private static Logger logger = LoggerFactory.getLogger(MaClass.class);
    }
    Dans ton fichier de conf (ici logback) (j'insiste... LOL)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <configuration scan="true" scanPeriod="30 seconds">
    	<jmxConfigurator />
     
    	<appender name="monpackage.MaCclass" class="ch.qos.logback.core.ConsoleAppender">
    		<encoder>
    			<pattern>..............</pattern>
    		</encoder>
    	</appender>
    	<logger name="monpackage.MaClass" level="DEBUG" additivity="false">
    		<appender-ref ref="monpackage.MaClass"/>
    	</logger>
    	<root>.....</root>
    </configuration>

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Et moi aussi j'insiste pour te dire que le logger créé ne se configure pas par rapport au fichier de config situé dans l'EJB, mais par rapport à celui créé par le serveur.

    Et j'ai vraiment envie de gardé Log4J ou travaillé avec le système de log proposé par JBoss

    As tu essayé ta méthode pour être aussi sur de ce que tu affirmes?
    Si tu vas vers le forum de JBoss, tu pourras voir que le système de log de la v6 a encore des bugs et est très mal documenté.

  8. #8
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 74
    Par défaut je confirme
    C'est bien en même temps que tu insistes aussi. Peut être que ce je te propose ne te convient pas du tout.

    Ce que j'ai détaillé dans mon précédent post fonctionne à 100% en tous cas, testé et approuvé. Maintenant reste à savoir si cela convient à ce que tu veux faire, je n'ai pas la prétention de t'expliquer ton besoin, j'essaye juste de t'aider à trouver un solution de ce que j'en ai compris. Mais peut être n'ai je tout simplement pas compris.

    En plus tu dis que le system de log de jboss est buggé ?? pourquoi veux tu l'utiliser ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/11/2014, 23h00
  2. [EJB Session] Méthode static dans un EJB ?
    Par KooKoolen dans le forum Java EE
    Réponses: 4
    Dernier message: 13/12/2006, 11h17
  3. Réponses: 7
    Dernier message: 05/07/2006, 17h14
  4. [EJBQL] Récupérer une donnée dans un EJB avec EJB/QL
    Par pblb62 dans le forum Java EE
    Réponses: 3
    Dernier message: 28/03/2006, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo