Hi,
Regarding the per webapp logging, when we use the
http://wiki.jboss.org/wiki/Wiki.jsp?page=Log4jRepositorySelector approach
it is not possible any more to do hot ear redeployments.
Steps to reproduce :
1. start JBoss with the ear deployed
2. undeployed the ear
3. redeploy the ear ==> the application cannot be deployed and the whole app server is
blocked.
I don't understand why, when redeploying the ear, the Log4jLoggerPlugin tries to use
the per webapp RepositorySelector. Of course it has not been initialized yet and it
fails.
See the stacktrace below. We got a NPE because the RepositorySelector was not initialized
yet. However, I don't think the repository of the Log4jLoggerPlugin should have been
modified.
****************stacktrace begins****************
java.lang.NullPointerException
at org.jboss.repositoryselectorexample.MyRepositorySelector.getLoggerRepo
sitory(MyRepositorySelector.java:87)
at org.apache.log4j.LogManager.getLogger(LogManager.java:179)
at org.apache.log4j.Logger.getLogger(Logger.java:85)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.commons.logging.impl.Log4jProxy.(Log4jProxy.java:132)
at
org.apache.commons.logging.impl.Log4JLogger.(Log4JLogger.java:39)
at
sun.reflect.GeneratedConstructorAccessor23.newInstance(Unknown Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons
tructorAccessorImpl.java:27)
at
java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImp
l.java:529)
at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImp
l.java:235)
at
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImp
l.java:209)
at
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:353)
at
org.apache.commons.httpclient.HttpMethodBase.(HttpMethodBase.jav
a:102)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at
sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAcces
sorFactory.java:25)
at
sun.reflect.ReflectionFactory.newFieldAccessor(ReflectionFactory.java:12
2)
at java.lang.reflect.Field.acquireFieldAccessor(Field.java:917)
at java.lang.reflect.Field.getFieldAccessor(Field.java:898)
at java.lang.reflect.Field.get(Field.java:357)
at
org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClass
Loader.java:1608)
at
org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java
:1492)
at
org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:736)
at
org.apache.catalina.core.StandardContext.stop(StandardContext.java:4393)
at
org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1132)
at
org.apache.catalina.core.StandardContext.destroy(StandardContext.java:44
49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503
)
at
org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.web.tomcat.tc5.TomcatDeployer.performUndeployInternal(TomcatDe
ployer.java:450)
at
org.jboss.web.tomcat.tc5.TomcatDeployer.performUndeploy(TomcatDeployer.j
ava:421)
at
org.jboss.web.AbstractWebDeployer.stop(AbstractWebDeployer.java:418)
at org.jboss.web.WebModule.stopModule(WebModule.java:100)
at org.jboss.web.WebModule.stopService(WebModule.java:66)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalStop(ServiceMBeanSuppo
rt.java:315)
at
org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBean
Support.java:247)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.
java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.jav
a:264)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController
.java:978)
at $Proxy0.stop(Unknown Source)
at
org.jboss.system.ServiceController.stop(ServiceController.java:508)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.
java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.jav
a:264)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy38.stop(Unknown Source)
at
org.jboss.web.AbstractWebContainer.stop(AbstractWebContainer.java:498)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.
java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at
org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.
java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at
org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBea
nOperationInterceptor.java:142)
at
org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.ja
va:97)
at
org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorSe
rviceMBeanSupport.java:238)
at
org.jboss.ws.integration.jboss.DeployerInterceptor.stop(DeployerIntercep
tor.java:122)
at
org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.sto
p(SubDeployerInterceptorSupport.java:196)
at
org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerIntercepto
r.java:99)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.jav
a:264)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy39.stop(Unknown Source)
at org.jboss.deployment.MainDeployer.stop(MainDeployer.java:667)
at org.jboss.deployment.MainDeployer.stop(MainDeployer.java:659)
at
org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:638)
at
org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:632)
at
org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:615)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.
java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at
org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.
java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at
org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBea
nOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.jav
a:264)
at
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy8.undeploy(Unknown Source)
at
org.jboss.deployment.scanner.URLDeploymentScanner.undeploy(URLDeployment
Scanner.java:450)
at
org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScan
ner.java:570)
at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doS
can(AbstractDeploymentScanner.java:263)
at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loo
p(AbstractDeploymentScanner.java:274)
at
org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run
(AbstractDeploymentScanner.java:225)
****************stacktrace ends****************
I also tried to copy the log4j.jar in the ./WEB-INF/lib/ of my webapp. Instead of getting
a NPE, I got a ClassCastException.
Is anybody succeeded in carrying out hot redeployments while having by per webapp logging?
I look at all the forums and I don't think JBoss can do this. We are running JBoss
4.0.5.
TIA
Al
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4044988#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...