java.lang.OutOfMemoryError:Jetty的PermGen空间错误

Ale*_*son 6 java web-services jetty permgen

我现在正在接受java.lang.OutOfMemoryError: PermGen space.我正在使用Jetty和Linux Ubuntu.我曾尝试阅读和尝试以前类似问题中提供的不同解决方案,但我没有取得任何成功.一个类似的问题是

处理"java.lang.OutOfMemoryError:PermGen space"错误

但这些解决方案似乎使用Tomcat而不是Jetty.如果我重新部署我的服务几次,我会不断出现记忆错误.例如,要测试这个,我将转到我的webapps文件夹并运行touch*.xml来更新时间戳,然后重新运行jetty,我得到了内存不足错误.在我的jetty文件夹(包含bin,doc等,lib,日志,模块,start.jar)我正在运行

java -jar ../start.jar
Run Code Online (Sandbox Code Playgroud)

但这给了我错误.然后我尝试了我在其他示例中读到的内容,例如:

java -jar ../start.jar JAVA_OPTS="-Xms256m -Xmx512m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"
Run Code Online (Sandbox Code Playgroud)

要么

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
Run Code Online (Sandbox Code Playgroud)

要么

-XX:MaxPermSize=128m
Run Code Online (Sandbox Code Playgroud)

然后当我去firefox并导航localhost:8080并刷新时,在终端中我一直收到错误

java.lang.OutOfMemoryError: PermGen space
Run Code Online (Sandbox Code Playgroud)

Mat*_*amn 2

希望您只需使用我的ClassLoader Leak Prevention 库就能够摆脱这些问题。在您自己的代码和第三方库中,有许多不同的错误可能导致此类内存泄漏。有关该问题、如何追踪问题以及已知违规者的更多信息,可以在我的博客系列中找到。特别注意Jetty 本身的这个错误,它可能会导致某些版本出现此类泄漏。