[jboss-user] [Installation, Configuration & Deployment] - no hot redeploy with per webapp logging

Flowered do-not-reply at jboss.com
Fri May 11 09:24:29 EDT 2007


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#4044988

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4044988



More information about the jboss-user mailing list