[jboss-dev-forums] [Design of POJO Server] - Re: AS 5 not reliably picking up changes in exploded EAR
jaikiran
do-not-reply at jboss.com
Tue Apr 7 10:31:07 EDT 2009
"alesj" wrote :
| This is Wicket code, and it does what it does. :-)
| I don't think we can do anything about it.
|
Yep, that's correct. I meant the code could be changed in the wicket/seam :)
"alesj" wrote :
| But that's not the point.
| Any other code could do something at undeploy.
| And since most of the app servers do temping by default it would work ootb.
|
So then the original question remains about 4.x:
anonymous wrote :
| How did we then handle resources lookup at undeploy (when the app was deleted)?
| I guess we didn't. :-)
I decided to give this a try with a simple WAR which has a ServletContextListener which on contextDestroyed, looks up a properties file within the WAR:
public class MyServletContextListener implements ServletContextListener {
|
| public void contextDestroyed(ServletContextEvent event) {
| System.out.println("Destroying " + event.getServletContext());
| ServletContext servletCtx = event.getServletContext();
| InputStream inputStream = servletCtx.getResourceAsStream("test.properties");
| System.out.println("Got stream while destroying " + inputStream);
| Properties props = new Properties();
| try {
| props.load(inputStream);
| System.out.println("Loaded props");
| } catch (Exception e)
| {
| System.out.println("Error loading props");
| e.printStackTrace();
| }
|
| }
|
Here are the results on AS-4.2.3 GA:
When the WAR is deployed in archived format, and i delete it from the deploy folder when the server is up, i see that the ServletContextListener is able to still lookup the test.properties file (since the archived deployments are temp'd):
19:48:57,038 INFO [STDOUT] Destroying org.apache.catalina.core.ApplicationContextFacade at 6e056e
| 19:48:57,038 INFO [STDOUT] Got stream while destroying java.io.ByteArrayInputStream at a3bb2e
| 19:48:57,038 INFO [STDOUT] Loaded props
|
When the WAR is deployed in exploded format and i delete it from the deploy folder, the ServletContextListener is not able to lookup that test.properties file (since the exploded deployment are not temp'd and original file is gone):
| 19:47:26,638 INFO [STDOUT] Destroying org.apache.catalina.core.ApplicationContextFacade at b2771
| 19:47:26,639 INFO [STDOUT] Got stream while destroying null
| 19:47:26,639 INFO [STDOUT] Error loading props
| 19:47:26,639 ERROR [STDERR] java.lang.NullPointerException
| 19:47:26,641 ERROR [STDERR] at java.util.Properties$LineReader.readLine(Properties.java:365)
| 19:47:26,641 ERROR [STDERR] at java.util.Properties.load(Properties.java:293)
| 19:47:26,641 ERROR [STDERR] at org.myapp.servlet.MyServletContextListener.contextDestroyed(MyServletContextListener.java:26)
| 19:47:26,641 ERROR [STDERR] at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3895)
| 19:47:26,641 ERROR [STDERR] at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4527)
| 19:47:26,641 ERROR [STDERR] at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1163)
| 19:47:26,642 ERROR [STDERR] at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4617)
| 19:47:26,642 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| 19:47:26,642 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| 19:47:26,642 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| 19:47:26,642 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
| 19:47:26,642 ERROR [STDERR] at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296)
| 19:47:26,643 ERROR [STDERR] at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
| 19:47:26,643 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| 19:47:26,643 ERROR [STDERR] at org.jboss.web.tomcat.service.TomcatDeployer.performUndeployInternal(TomcatDeployer.java:461)
| 19:47:26,643 ERROR [STDERR] at org.jboss.web.tomcat.service.TomcatDeployer.performUndeploy(TomcatDeployer.java:432)
| 19:47:26,643 ERROR [STDERR] at org.jboss.web.AbstractWebDeployer.stop(AbstractWebDeployer.java:422)
| 19:47:26,643 ERROR [STDERR] at org.jboss.web.WebModule.stopModule(WebModule.java:100)
| 19:47:26,643 ERROR [STDERR] at org.jboss.web.WebModule.stopService(WebModule.java:66)
| 19:47:26,644 ERROR [STDERR] at org.jboss.system.ServiceMBeanSupport.jbossInternalStop(ServiceMBeanSupport.java:315)
| 19:47:26,644 ERROR [STDERR] at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:247)
| 19:47:26,644 ERROR [STDERR] at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
| 19:47:26,644 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| 19:47:26,644 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
| 19:47:26,644 ERROR [STDERR] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| 19:47:26,645 ERROR [STDERR] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| 19:47:26,645 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| 19:47:26,645 ERROR [STDERR] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| 19:47:26,645 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| 19:47:26,645 ERROR [STDERR] at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
| 19:47:26,645 ERROR [STDERR] at $Proxy0.stop(Unknown Source)
| 19:47:26,645 ERROR [STDERR] at org.jboss.system.ServiceController.stop(ServiceController.java:508)
| 19:47:26,646 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| 19:47:26,646 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| 19:47:26,646 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| 19:47:26,646 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
| 19:47:26,646 ERROR [STDERR] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| 19:47:26,646 ERROR [STDERR] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| 19:47:26,647 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| 19:47:26,647 ERROR [STDERR] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| 19:47:26,647 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| 19:47:26,647 ERROR [STDERR] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| 19:47:26,647 ERROR [STDERR] at $Proxy44.stop(Unknown Source)
| 19:47:26,647 ERROR [STDERR] at org.jboss.web.AbstractWebContainer.stop(AbstractWebContainer.java:498)
| 19:47:26,647 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| 19:47:26,648 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| 19:47:26,648 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| 19:47:26,648 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
| 19:47:26,648 ERROR [STDERR] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| 19:47:26,648 ERROR [STDERR] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| 19:47:26,648 ERROR [STDERR] at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| 19:47:26,649 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| 19:47:26,649 ERROR [STDERR] at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| 19:47:26,649 ERROR [STDERR] at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
| 19:47:26,649 ERROR [STDERR] at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
| 19:47:26,649 ERROR [STDERR] at org.jboss.wsf.container.jboss42.DeployerInterceptor.stop(DeployerInterceptor.java:98)
| 19:47:26,649 ERROR [STDERR] at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.stop(SubDeployerInterceptorSupport.java:196)
| 19:47:26,649 ERROR [STDERR] at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:99)
| 19:47:26,650 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| 19:47:26,650 ERROR [STDERR] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| 19:47:26,650 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| 19:47:26,650 ERROR [STDERR] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| 19:47:26,650 ERROR [STDERR] at $Proxy45.stop(Unknown Source)
| 19:47:26,650 ERROR [STDERR] at org.jboss.deployment.MainDeployer.stop(MainDeployer.java:667)
| 19:47:26,650 ERROR [STDERR] at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:638)
| 19:47:26,651 ERROR [STDERR] at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:632)
| 19:47:26,651 ERROR [STDERR] at org.jboss.deployment.MainDeployer.undeploy(MainDeployer.java:615)
| 19:47:26,651 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| 19:47:26,651 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
| 19:47:26,651 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| 19:47:26,651 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
| 19:47:26,652 ERROR [STDERR] at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
| 19:47:26,653 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| 19:47:26,653 ERROR [STDERR] at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
| 19:47:26,653 ERROR [STDERR] at $Proxy9.undeploy(Unknown Source)
| 19:47:26,653 ERROR [STDERR] at org.jboss.deployment.scanner.URLDeploymentScanner.undeploy(URLDeploymentScanner.java:450)
| 19:47:26,653 ERROR [STDERR] at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:570)
| 19:47:26,653 ERROR [STDERR] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
| 19:47:26,653 ERROR [STDERR] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
| 19:47:26,654 ERROR [STDERR] at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
|
So that answers the question - we did not support this even in 4.x with exploded deployments.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4224070#4224070
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4224070
More information about the jboss-dev-forums
mailing list