Open luiscla27 opened 5 years ago
Hello, i think this error may be caused due a wrong configuration, i had configured both Tomcat and my Maven project with HotswapAgent:
Maven project:
Tomcat:
The error seems to be fixed after i removed Tomcat configuration, i think you can close this issue by confirming that my configuration was wrong.
Is the hotswap working after the option removal? There should be -XXaltjvm=dcevm ..
options visible in running Tomcat process, otherwise the hotswap is turned off.
Yes. It is working, classes are being reloaded with no problems (see attached video).
And no; is not visible at the tomcat process (Java):
I can see the HotSwapAgent messages being printed when compilation starts using MAVEN_OPTS...
:
cd E:\_Lu15_MainFolder\BnextQMS-Desarrollo\QMS_2.13.3.B1; "MAVEN_OPTS=-XXaltjvm=dcevm -javaagent:E:\\Java\\hotswap-agent-1.3.0.jar" JAVA_HOME=E:\\Java\\jdk1.8.0_181 M2_HOME=C:\\apache-maven-3.6.0 cmd /c "\"\"C:\\apache-maven-3.6.0\\bin\\mvn.cmd\" -Dnetbeans.deploy.debugmode=true -Dnetbeans.deploy=true -Dmaven.ext.class.path=E:\\NetBeans\\NB-10.0\\netbeans\\java\\maven-nblib\\netbeans-eventspy.jar -Dfile.encoding=UTF-8 -PDevelopment package\""
HOTSWAP AGENT: 10:59:59.037 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.3.0} - unlimited runtime class redefinition.
HOTSWAP AGENT: 10:59:59.334 INFO (org.hotswap.agent.config.PluginRegistry) - Discovered plugins: [Hotswapper, JdkPlugin, AnonymousClassPatch, ClassInitPlugin, WatchResources, Hibernate, Hibernate3JPA, Hibernate3, Spring, Jersey1, Jersey2, Jetty, Tomcat, ZK, Logback, Log4j2, MyFaces, Mojarra, Omnifaces, Seam, ELResolver, WildFlyELResolver, OsgiEquinox, Owb, Proxy, WebObjects, Weld, JBossModules, ResteasyRegistry, Deltaspike, GlassFish, Vaadin]
BuildTimeEventSpy is registered.
Scanning for projects...
Looks ok. I'm closing this issue.
You were right @skybber. Can you please reopen the issue?
HotSwapAgent is not fully working without -XXaltjvm=dcevm ...
, does this means that this issue is related to DCEVM?
You need dcevm+hotswapgent to use advanced hotswap.
Thank you,
Every time the issue seems to be triggered after the java.lang.IllegalStateException
, here some more stacktraces... that also started with Illegal access
, is there anything that am doing wrong?
06-Sep-2019 12:37:03.306 INFORMACIÓN [JDWP Transport Listener: dt_shmem] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1368)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1182)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass3(DefineClassHelper.java:154)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass2(DefineClassHelper.java:136)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:95)
at org.hotswap.agent.javassist.ClassPool.toClass(ClassPool.java:1143)
at org.hotswap.agent.javassist.CtClass.toClass(CtClass.java:1316)
at org.hotswap.agent.util.classloader.ClassLoaderDefineClassPatcher.patch(ClassLoaderDefineClassPatcher.java:68)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:166)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
06-Sep-2019 12:37:03.316 INFORMACIÓN [JDWP Transport Listener: dt_shmem] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [hotswap-agent.properties]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [hotswap-agent.properties]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.findResources(WebappClassLoaderBase.java:979)
at org.apache.catalina.loader.WebappClassLoaderBase.getResources(WebappClassLoaderBase.java:1080)
at org.hotswap.agent.config.PluginConfiguration.loadConfigurationFile(PluginConfiguration.java:102)
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:61)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:171)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
HOTSWAP AGENT: 12:37:03.372 ERROR (org.hotswap.agent.util.HotswapTransformer) - Error transforming class 'bnext/ibm/maximo/monitor/MaximoMonitor'.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [hotswap-agent.properties]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración así como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.findResources(WebappClassLoaderBase.java:979)
at org.apache.catalina.loader.WebappClassLoaderBase.getResources(WebappClassLoaderBase.java:1080)
at org.hotswap.agent.config.PluginConfiguration.loadConfigurationFile(PluginConfiguration.java:102)
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:61)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:171)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
It looks like the IllegalStateException is thrown after application is stopped, look at:
Application has not stopped,
That exception is wrong 😲 It seems that it'll be trowed at any of the following states (see here):
So this may be Tomcat bug? i think that the issue is caused due to the fact that HotSwapAgent tries to load resources while initializing something inside tomcat (?)
Whatever the reason i think their validation should only consider the STOP related status... something like this (my guess is that status while the error occurs is related to INIT stuff):
protected void checkStateForResourceLoading(String resource) throws IllegalStateException {
// It is not permitted to load resources once the web application has
// been stopped.
if (
state == LifecycleState.STOPPING
|| state == LifecycleState.STOPPED // add every invalid status...
) {
String msg = sm.getString("webappClassLoader.stopped", resource);
IllegalStateException ise = new IllegalStateException(msg);
log.info(msg, ise);
throw ise;
}
}
Still... maybe the solution would be that HotSwapAgent waits for Tomcat to have a valid state
As you have written and as I understand, the problem is after redefinition of some class, not on start of Tomcat. It looks like you have autoreloading ON in Tomcat setup. Make sure you have disabled auto-deploy. I have similar problem in Eclipse if I forget to disable it.
Yes @skybber, the problem is after redifinition of some class, also is not the case about autoreloading being turned ON.
I've attached a video of the class redefinition and the autoreloading settings:
Here's the stacktrace that is shown at the video:
24-Sep-2019 15:44:28.014 INFORMACIÓN [JDWP Transport Listener: dt_shmem] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [javax.enterprise.util.AnnotationLiteral]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [javax.enterprise.util.AnnotationLiteral]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1368)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1182)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass3(DefineClassHelper.java:154)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass2(DefineClassHelper.java:136)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:95)
at org.hotswap.agent.javassist.ClassPool.toClass(ClassPool.java:1143)
at org.hotswap.agent.javassist.CtClass.toClass(CtClass.java:1316)
at org.hotswap.agent.util.classloader.ClassLoaderDefineClassPatcher.patch(ClassLoaderDefineClassPatcher.java:68)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:166)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
24-Sep-2019 15:44:28.042 INFORMACIÓN [JDWP Transport Listener: dt_shmem] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [javax.enterprise.util.AnnotationLiteral]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [javax.enterprise.util.AnnotationLiteral]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1368)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1182)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass3(DefineClassHelper.java:154)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass2(DefineClassHelper.java:136)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:95)
at org.hotswap.agent.javassist.ClassPool.toClass(ClassPool.java:1143)
at org.hotswap.agent.javassist.CtClass.toClass(CtClass.java:1316)
at org.hotswap.agent.util.classloader.ClassLoaderDefineClassPatcher.patch(ClassLoaderDefineClassPatcher.java:68)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:166)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
24-Sep-2019 15:44:28.121 INFORMACIÓN [JDWP Transport Listener: dt_shmem] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [org.apache.deltaspike.core.api.config.view.metadata.ViewConfigResolver]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1368)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1220)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1182)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass3(DefineClassHelper.java:154)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass2(DefineClassHelper.java:136)
at org.hotswap.agent.javassist.util.proxy.DefineClassHelper.toClass(DefineClassHelper.java:95)
at org.hotswap.agent.javassist.ClassPool.toClass(ClassPool.java:1143)
at org.hotswap.agent.javassist.CtClass.toClass(CtClass.java:1316)
at org.hotswap.agent.util.classloader.ClassLoaderDefineClassPatcher.patch(ClassLoaderDefineClassPatcher.java:68)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:166)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
24-Sep-2019 15:44:28.129 INFORMACIÓN [JDWP Transport Listener: dt_shmem] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [hotswap-agent.properties]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [hotswap-agent.properties]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración asà como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.findResources(WebappClassLoaderBase.java:979)
at org.apache.catalina.loader.WebappClassLoaderBase.getResources(WebappClassLoaderBase.java:1080)
at org.hotswap.agent.config.PluginConfiguration.loadConfigurationFile(PluginConfiguration.java:102)
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:61)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:171)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
HOTSWAP AGENT: 15:44:28.172 ERROR (org.hotswap.agent.util.HotswapTransformer) - Error transforming class 'qms/activity/rest/ActivityTypeController'.
java.lang.IllegalStateException: Acceso ilegal: esta instancia de aplicación web ya ha sido parada. Could not load [hotswap-agent.properties]. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración así como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.
at org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1380)
at org.apache.catalina.loader.WebappClassLoaderBase.findResources(WebappClassLoaderBase.java:979)
at org.apache.catalina.loader.WebappClassLoaderBase.getResources(WebappClassLoaderBase.java:1080)
at org.hotswap.agent.config.PluginConfiguration.loadConfigurationFile(PluginConfiguration.java:102)
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:61)
at org.hotswap.agent.config.PluginManager.initClassLoader(PluginManager.java:171)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:146)
at org.hotswap.agent.annotation.handler.PluginClassFileTransformer.transform(PluginClassFileTransformer.java:89)
at org.hotswap.agent.util.HotswapTransformer.transform(HotswapTransformer.java:184)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
HOTSWAP AGENT: 15:45:00.004 INFO (org.hotswap.agent.plugin.spring.getbean.DetachableBeanHolder) - Bean 'com.sun.proxy.$Proxy479' loaded
HOTSWAP AGENT: 15:45:00.011 INFO (org.hotswap.agent.plugin.spring.getbean.DetachableBeanHolder) - Bean 'com.sun.proxy.$Proxy479' loaded
Changes are being reloaded correclty,
(closed by mistake)
As you have written and as I understand, the problem is after redefinition of some class, not on start of Tomcat. It looks like you have autoreloading ON in Tomcat setup. Make sure you have disabled auto-deploy. I have similar problem in Eclipse if I forget to disable it.
And yes, the error is thrown after some class redefinition.
Do you see following line in your logs?
Plugin 'org.hotswap.agent.plugin.tomcat.TomcatPlugin' initialized in ClassLoader 'ParallelWebappClassLoader
how many times?
I haven't seen your message until today @skybber!
And yes, i see that line in my logs, it appears 7 times, here's the complete initialization log, is it expected to run that many times??
Today my JVM had a fatal error after one heavy hotswap, here's the crash log, i think it's related to same issue.
Do you have the original problem yet?
Yes @skybber, everytime i save changes the same Could not load [javax.enterprise.util.AnnotationLiteral]
error is shown
I see it now. According log, you are starting following Tomcat's default applications:
docs, examples, host-manager, manager
disable them all, then you should not have this problem.
Thanks @skybber,
I've just tried that and i was able to undeploy: docs
, examples
and host-manager
, i wasn't able to undeploy manager
, it seems that NetBeans requires the manager application to start tomcat...
By removing manually the \tomcat\webapps\manager
folder, NetBeans got stuck trying to start tomcat, so i tried just stopping it:
But that didn't work either, the following error is shown:
I did the test again but again everytime i save changes the same Could not load [javax.enterprise.util.AnnotationLiteral]
error is shown (...)
There should be only your application in Tomcat otherwise you will have this problem.
Currently my application runs using the Java EE feature of NetBeans, i think the embedded version doesn't requires manager
to be there...
So I guess the only way for running netbeans + tomcat + hotswap
is that tomcat should be embedded with the application, can you please confirm this is a requirement for hotswap?
It is definitely not required. I'm not expert on netbeans, but my colleagues are using netbeans+tomcat+hotswap without problems. Did you try to follow setup from http://hotswapagent.org/mydoc_setup_netbeans.html ?
Yes, that's the configuration i have, you can see my full settings here
A colleague tried to run the same configuration with the same project from another machine and the error wasn't thrown (he also didn't removed the manager
application), so i guess is something environment related... by now i'll try to find the environment differences.
AFAIK Hot Swap is working fine with me... classes are being correctly reloaded. How ever, when i change some code from a spring controller (anywhere) I have this problem...