小编sti*_*ows的帖子

如何配置 tomcat 以便之前运行的类不会保留在内存中

tomcat/manager当我点击find leaks按钮,我得到以下信息:

以下 Web 应用程序已停止(重新加载、取消部署),但它们之前运行的类仍在内存中加载,从而导致内存泄漏(使用分析器确认):

这实际上给我带来了很大的问题,因为当我需要重新部署应用程序并进行一些更改时,旧版本保留在服务器中,当我尝试使用它时,我得到:

IllegalStateException: Illegal access: this web application instance has been stopped already
Run Code Online (Sandbox Code Playgroud)

即使在 tomcat/manager 中,应用程序显示为已启动。

我该如何解决?我看了here但没有解决问题。我尝试运行jps命令来获取pidJVM,但它没有返回 JVM,我猜是由于许可问题。

是否可以以某种方式配置 tomcat,以便在取消部署应用程序时,它不应该在内存中保留该应用程序的任何类?

问题如何在部署新的 .war 文件时清除 tomcat 的缓存?有配置设置吗?没有解决我的问题,因为我按照那里给出的步骤操作:

  • 取消部署应用程序
  • 停止tomcat
  • 从 tomcat 的 `work` 目录中删除应用程序
  • 清除浏览器缓存
  • 启动tomcat
  • 将war文件放在`webapps`中
  • 稍等片刻
  • 启动应用程序

这些步骤没有解决问题

java tomcat server

7
推荐指数
1
解决办法
643
查看次数

java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V

我有一个应用程序,我apache POI 3.17 在其中创建 Excel 文件apache POI,当我在Tomcat. 这是什么意思?我该如何解决?

java apache apache-poi

6
推荐指数
1
解决办法
2万
查看次数

当您调用其中的另一个方法时,方法的执行流程是否会等待?

假设你有以下方法 MyClass

public class MyClas{
  public void startWork(){
    YourClass.doSomeWork();
    //more things to do in this method
  }
}
Run Code Online (Sandbox Code Playgroud)

和YourClass看起来像这样:

public class YourClass{
  public static void doSomeWork(){
    // a lot of work to do here
    // maybe even invoke other methods in some other classes
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道是在代码YourClass.doSomeWork();中执行的startWork()方法,将脚本继续下一行相同的方法,或者等到doSomeWork()YourClass完成它的执行?

请注意,doSomeWork()不会返回任何内容.

java oop execution

3
推荐指数
2
解决办法
382
查看次数

标签 统计

java ×3

apache ×1

apache-poi ×1

execution ×1

oop ×1

server ×1

tomcat ×1