Hi,
I'm using tomee maven plugin to undeploy/deploy my war to the remote server
and It works pretty well when deployments are executed often, but when there
is long a timeout (10 hours for example) it fails to cleanly undeploy the
app.
There are no logged exceptions in the app log file and in the catalina.out
during undeploy, only this one is logged in the localhost.2016-07-25.log:
25-Jul-2016 11:27:23.760 SEVERE [http-nio-7080-exec-9]
org.apache.catalina.core.StandardContext.listenerStop Exception sending
context destroyed event to listener instan
ce of class org.apache.myfaces.webapp.StartupServletContextListener
javax.enterprise.inject.UnsatisfiedResolutionException: Api type
[javax.enterprise.inject.spi.BeanManager] is not found with the qualifiers
Qualifiers: [@javax.enterprise.inject.Default()]
for injection into Method Injection Point, method name :
camelBeansPostProcessor, Bean Owner : [CdiCamelExtension,
WebBeansType:EXTENSION, Name:null, API Types:[java.la
ng.Object,org.apache.camel.cdi.CdiCamelExtension,javax.enterprise.inject.spi.Extension],
Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]]
at
org.apache.webbeans.util.InjectionExceptionUtil.throwUnsatisfiedResolutionException(InjectionExceptionUtil.java:65)
at
org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:279)
at
org.apache.webbeans.event.ObserverMethodImpl.getMethodArguments(ObserverMethodImpl.java:369)
at
org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:215)
at
org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:676)
at
org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:485)
at
org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:459)
at
org.apache.webbeans.util.WebBeansUtil.fireProcessInjectionTargetEvent(WebBeansUtil.java:1035)
at
org.apache.webbeans.util.WebBeansUtil.fireProcessInjectionTargetEvent(WebBeansUtil.java:1029)
at
org.apache.webbeans.container.BeanManagerImpl.createInjectionTarget(BeanManagerImpl.java:1236)
at
org.apache.myfaces.cdi.impl.CDIAnnotationInjectionProvider.preDestroy(CDIAnnotationInjectionProvider.java:70)
at
org.apache.myfaces.spi.impl.CDIAnnotationDelegateInjectionProvider.preDestroy(CDIAnnotationDelegateInjectionProvider.java:78)
at
org.apache.myfaces.webapp.AbstractFacesInitializer._callPreDestroyOnInjectedJSFArtifacts(AbstractFacesInitializer.java:713)
at
org.apache.myfaces.webapp.AbstractFacesInitializer.destroyFaces(AbstractFacesInitializer.java:366)
at
org.apache.myfaces.webapp.StartupServletContextListener.contextDestroyed(StartupServletContextListener.java:167)
at
org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4778)
at
org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5417)
at
org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:229)
at
org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:817)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1583)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1554)
at
org.apache.tomee.catalina.TomcatWebAppBuilder.undeployWebApps(TomcatWebAppBuilder.java:754)
at
org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:2217)
at
org.apache.openejb.assembler.DeployerEjb.undeploy(DeployerEjb.java:420)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
at
org.apache.openejb.security.internal.InternalSecurityInterceptor.invoke(InternalSecurityInterceptor.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:205)
at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:186)
at
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181)
at
org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
One side effect of this exception (i believe it is related) is that the
deployment record in the deployments.xml is not removed, so when
tomee:deploy is invoked another (duplicate) record is created. It means it
won't start up when TomEE is restarted.
What can be done to make sure the deployments.xml is clean after undeploy?
Cheers,
Dmitry
--
View this message in context:
http://tomee-openejb.979440.n4.nabble.com/tomee-undeploy-is-not-clean-after-long-timeout-since-the-last-deployment-tp4679481.html
Sent from the TomEE Users mailing list archive at Nabble.com.