Java、Spring、Tomcat 在 "INFO: Initializing Spring root WebApplicationContext"挂起,我想我更改了整个系统的允许内存堆

标签 java spring tomcat memory-management heap-memory

我正在研究 Java 内存堆分配,我想我做了一些设置,不仅针对任何特定的 tomcat 文件夹,而且针对整个系统,因为我无法在 Spring 中或使用自定义 tomcat 文件夹运行我的应用程序我也一直在使用它进行测试。当我尝试运行该应用程序时,它只是卡在“信息:初始化 Spring 根 WebApplicationContext”处。

我不完全清楚如何在 Linux 命令行上通过执行诸如 "export CATALINA_OPTS="-Xms2000m -Xmx4500m""JAVA_OPTS="- Xms2000m -Xmx4500m -XX:MaxPermSize=4500m"

我想我不小心设置了我的云服务器(它有更多的内存),所以我给它分配了比我整个系统更多的内存。

如果有人可以让我知道我是否有可能这样做,这是否会导致问题,以及我如何从我的系统中获得关于当前分配的输出以便我可以检查/更改,我将不胜感激它,我已经尝试过 "export CATALINA_OPTS="-Xms2000m -Xmx4500m" 但它仍然对我不起作用。

我想将所有内容恢复为默认设置。我通常在 tomcat 文件夹的/bin/startup.sh 文件中设置内存堆分配,但我想我忘记了这一点,并在命令行上进行试验。

谢谢

最佳答案

检查 Tomcat 的所有日志文件。可能是 Spring WebApplicationContext 的启动遇到了错误,但在别处记录了它。

为 Tomcat 设置太大的最大堆大小对我来说听起来像是转移注意力。如果初始堆大小参数大于系统上的最大内存大小,Java 进程将立即失败 - Tomcat 将无法初始化您的 Spring 应用程序。

关于Java、Spring、Tomcat 在 "INFO: Initializing Spring root WebApplicationContext"挂起,我想我更改了整个系统的允许内存堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5147254/

相关文章:

java - Java 中信号量的一般用途

java - JNI 中的对象创建

java - 为什么 JDBC 身份验证在 Spring Boot 和 React 中因 CORS 失败?

java - 在独立应用程序中使用 Spring

Spring/Tomcat 6 Session 过期问题

Tomcat 和自签名证书

java - 在当前 View 中定位一个元素

java - Spring MVC 在类 'xxxx' 中找不到属性 'xxxx' 的 setter

java - Log4j警告: no appenders found even if it is there

eclipse - 无法从通过 Eclipse 启动的 Tomcat 服务器重新连接到 Derby