Tomcat 服务器不使用 DCEVM 修补的 JRE 启动
Tomcat server does not start with DCEVM patched JRE
我已经按照提到的步骤进行了操作here
- 在JDK中安装“jvm.dll”DCEVM补丁(成功。创建DCEVM补丁文件夹)
- 在 Eclipse 中 - Tomcat 服务器 - 运行时环境 - JRE 必须映射到与 JDK 相同的 JRE,其中 DECVM 在步骤 1
中被修补
- Tomcat - 在 VM 参数中添加“-XXaltjvm="dcevm" -javaagent:\HotswapAgent.jar”(VM 参数
-Dcatalina.base="C:\MCA\workspaces\MCA\.metadata\.plugins\org.eclipse.wst.server.core\tmp0" -Dcatalina.home="C:\MCA\tools\apache-tomcat-7.0.54" -Dwtp.deploy="C:\MCA\workspaces\MCA\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps" -Djava.endorsed.dirs="C:\MCA\tools\apache-tomcat-7.0.54\endorsed" -XXaltjvm="dcevm" -javaagent:C:\MCA\tools\dcevm\hotswap-agent.jar
)
- 在 Tomcat 网络模块中禁用“自动重新加载”
每当我尝试使用时抛出异常。
下面是堆栈跟踪。
HOTSWAP AGENT: 17:15:46.234 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {0.3.0-SNAPSHOT} - unlimited runtime class redefinition.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
Caused by: java.lang.NullPointerException
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:44)
at org.hotswap.agent.config.PluginManager.init(PluginManager.java:95)
at org.hotswap.agent.HotswapAgent.premain(HotswapAgent.java:42)
... 6 more
FATAL ERROR in native method: processing of -javaagent failed
Exception in thread "main"
Java - 版本为
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
从 here 下载的安装程序文件。
Here 它描述了一个非常相似的错误,由您得到的相同 NPE 引起:
Caused by: java.lang.NullPointerException
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:44)
解决方案似乎是从 Oracle JDK 切换到 OpenJDK。
因此,如果您使用的是 Oracle JDK,请尝试更改它。如果您已经在使用 OpenJDK,请忘记我的回答。
希望对您有所帮助!
我通过将 JDK1.7_80 更改为 JDK1.7_55 解决了这个问题。
当我的热交换代理路径错误时,我遇到了这个问题。
我已经按照提到的步骤进行了操作here
- 在JDK中安装“jvm.dll”DCEVM补丁(成功。创建DCEVM补丁文件夹)
- 在 Eclipse 中 - Tomcat 服务器 - 运行时环境 - JRE 必须映射到与 JDK 相同的 JRE,其中 DECVM 在步骤 1 中被修补
- Tomcat - 在 VM 参数中添加“-XXaltjvm="dcevm" -javaagent:\HotswapAgent.jar”(VM 参数
-Dcatalina.base="C:\MCA\workspaces\MCA\.metadata\.plugins\org.eclipse.wst.server.core\tmp0" -Dcatalina.home="C:\MCA\tools\apache-tomcat-7.0.54" -Dwtp.deploy="C:\MCA\workspaces\MCA\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps" -Djava.endorsed.dirs="C:\MCA\tools\apache-tomcat-7.0.54\endorsed" -XXaltjvm="dcevm" -javaagent:C:\MCA\tools\dcevm\hotswap-agent.jar
) - 在 Tomcat 网络模块中禁用“自动重新加载”
每当我尝试使用时抛出异常。
下面是堆栈跟踪。
HOTSWAP AGENT: 17:15:46.234 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {0.3.0-SNAPSHOT} - unlimited runtime class redefinition.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397)
Caused by: java.lang.NullPointerException
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:44)
at org.hotswap.agent.config.PluginManager.init(PluginManager.java:95)
at org.hotswap.agent.HotswapAgent.premain(HotswapAgent.java:42)
... 6 more
FATAL ERROR in native method: processing of -javaagent failed
Exception in thread "main"
Java - 版本为
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
从 here 下载的安装程序文件。
Here 它描述了一个非常相似的错误,由您得到的相同 NPE 引起:
Caused by: java.lang.NullPointerException
at org.hotswap.agent.config.PluginConfiguration.<init>(PluginConfiguration.java:44)
解决方案似乎是从 Oracle JDK 切换到 OpenJDK。
因此,如果您使用的是 Oracle JDK,请尝试更改它。如果您已经在使用 OpenJDK,请忘记我的回答。
希望对您有所帮助!
我通过将 JDK1.7_80 更改为 JDK1.7_55 解决了这个问题。
当我的热交换代理路径错误时,我遇到了这个问题。