- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在生产服务器中部署应用程序时正在尝试一些问题。
我有一台用于开发的 ubuntu 机器,我的 servlet 在其中运行良好。一个月左右没有问题。
然后我将其部署到我的生产计算机(VM debian)。我停止了tomcat,我将war文件复制到webapps文件夹并再次启动tomcat。
首先,当我尝试停止/启动/重新启动 tomcat 时,我收到此“错误”:
root@VMMachine-34199:~/folder# sudo /etc/init.d/tomcat6 restart
[ ok ] Stopping Tomcat servlet engine: tomcat6 Tomcat servlet engine is not running but pid file exists, cleaning up.
[ ok ] Starting Tomcat servlet engine: tomcat6.
root@VMMachine-34199:~/folder# sudo /etc/init.d/tomcat6 status
[ ok ] Tomcat servlet engine is running with pid 22627.
root@VMMachine-34199:~/folder# sudo /etc/init.d/tomcat6 status
[ ok ] Tomcat servlet engine is not running, but pid file exists..
我不知道该怎么做才能避免这种情况。总是发生在生产机器中。
之后,我又遇到了这个问题,不知道是否与第一个相关。
在 catalina.out 我得到:
java.net.BindException: Address already in use <null>:9010
9010是tomcat端口。该端口仅用于通过我拥有的其他服务连接到我部署的 war 之一。使用 netstat -atnp |grep 9010 我只看到其他服务正在监听。
但是在此之后,tomcat 似乎启动了,注册了我的 servlet 中可用的资源等等。
最后,我在 catalina.out 中得到了这个:
May 05, 2014 8:34:29 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/var/lib/tomcat6/webapps/SERVLET/WEB-INF/lib/servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
May 05, 2014 8:34:47 AM org.apache.tomcat.util.digester.Digester endElement
SEVERE: End event threw error
java.lang.OutOfMemoryError: PermGen space
May 05, 2014 8:34:47 AM org.apache.tomcat.util.modeler.Registry registerComponent
SEVERE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/SERVLET,J2EEApplication=none,J2EEServer=none
May 05, 2014 8:34:47 AM org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory SERVLET
java.lang.OutOfMemoryError: PermGen space
正如我已经说过的,在开发机器中,tomcat 工作正常并且从未给我这些错误,所以我不知道如何处理它们。
我正在使用这个库 Log4j 。我在这里读到:http://javarevisited.blogspot.com.es/2012/01/tomcat-javalangoutofmemoryerror-permgen.html可能会导致 Permgem 错误。不知道这是否可以帮助您解决我的问题
现在我在启动时得到了这个,然后它停止了:
2014 年 5 月 5 日上午 8:42:17 org.apache.coyote.http11.Http11Protocol 暂停信息:在 http-9010 上暂停 Coyote HTTP/1.12014 年 5 月 5 日上午 8:42:18 org.apache.catalina.core.StandardService 停止信息:停止服务 Catalina2014 年 5 月 5 日上午 8:42:18 org.apache.catalina.loader.WebappClassLoaderclearReferencesThreads严重:Web 应用程序 [/SERVLET] 似乎已启动名为 [Timer-0] 的线程,但无法停止它。这很可能造成内存泄漏。2014 年 5 月 5 日上午 8:42:18 org.apache.coyote.http11.Http11Protocol 销毁信息:在 http-9010 上停止 Coyote HTTP/1.1
最佳答案
尝试增加生产服务器上虚拟机的 PermGen 大小(它是 JVM 保留类和其他一些保证不会更改且很少需要垃圾收集的常量中的内存区域)。
关于java - Tomcat6问题和PermGen空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23468219/
运行 Tomcat 失败并出现 java.lang.OutOfMemoryError - 与缺少 PermGen 空间相关的错误。 我最近将 Tomcat 更改为以自己的用户(而非 root)运行。
我需要一些信息: 我有 2 个带有 TOMCAT 7.0.28 和 JAVA jdk1.7.0_05 的 redhat 6.1 Linux 服务器 在 192.168.1.20(TOM04) 上,我有
我知道在JVM中,permgen区是用来存放类定义的。在我的 Tomcat 中,我看到 permgen 的当前内存使用量接近 100MB,似乎它只是随着时间的推移而增长,即使没有人使用 Tomcat
我正在尝试增加我的应用程序必须使用的 PermGen 空间量以避免一些 PermGen 错误。 我尝试将 JAVA_OPTS 和 MAVEN_OPTS 导出为 -Xms1024m -Xmx2048m
我遇到了一个非常严重的生产问题,我希望有人能提供帮助。 我正在使用 Spring 3.1.0 并且对其功能印象深刻。 在开发过程中,一切正常。不幸的是,在部署到生产环境时,我们遇到了一些问题。 我们正
next java release附带 removal of the permanent generation来自热点 JVM。 Java 开发人员应该知道的后果是什么? 最佳答案 来自您链接的 JE
我有一个关于 PermGen 内存分配过多的问题。 我写了一个小代码来监控这个内存空间的大小,我注意到几乎每个方法执行后分配的内存大小都会增加。也许我的应用程序中有很多全局对象?有没有办法知道在 Pe
有没有一种工具/方法可以监控 tomcat 内存使用情况,即 permgen 以避免出现如下问题。是的,我们可以增加内存并调整 GC,但仍然进行一些监控会更好。当达到某些关键内存消耗时,还希望发送警告
org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet default t
环境:Windows Server 2003 x86 Intel Xeon 2.3 4gb Ram | Tomcat 7.0.27 | jdk 1.7.0.25 我遇到了 OutOfMemoryErr
我有 tomcat 7.0.47,grails 2.3.7 中的一个项目和 windows 2003 中 RichFaces 4.3.4 中的 2 个项目 服务器(2Gb RAM)。如果我在 tomc
嘿,我在 Windows 上,我正在尝试部署 Tomcat,但我一直收到 permgen 内存异常。我读到您可以通过添加 JAVA_OPTS="-server -Xms128M -Xmx256M -X
我有一个正在运行的java进程。通过 jstat,我可以看到 permgen 利用率和容量几乎相同。即当前容量几乎已满,但仍远低于指定的最大 permgensize。 这是标准还是我应该期望看到一定程
我正在为在 JBoss 上运行的应用程序使用 JAVA 5(32 位)。但它仅适用于 32 位。当我们在 64 位 java5 上部署它时,它会抛出异常 "java.lang.OutOfMemoryE
我从官方oracle网站找到了图片 但在流行SO answer我发现永久代不是堆的一部分 Permanent Generation (non-heap): The pool containing al
我想知道 JVM 是否正常卸载类以减少 PermGen 空间。所以这是我的问题: Java 类是否会默认从 JVM 中卸载? 关闭 Jar 类加载器是否会卸载该 jar 中所有已加载的类? 应该使用什
我试图了解 HotSpot JVM 的内存结构,但对“方法区” 和“PermGen” 空间这两个术语感到困惑。我提到的文档说方法区包含类和方法的定义,包括字节码。其他一些文档说它们存储在 PermGe
java中PermGen空间的意义是什么? 最佳答案 PermGen 空间是为长期对象保留的——主要是由 ClassLoader 加载的 Class 对象。 PermGen 不会被垃圾回收,除非在非常
我知道有很多关于这个问题的问题和答案;我已经尝试了 8 或 10 种对其他人有用的不同方法,并且觉得需要分析错误的地方而不是反复试验。 我在 Windows 64 位机器上运行,Spring Tool
在我的进程中,我不断创建一个新的 Thread 对象(实际上是 Thread 的子类)(每秒最多几个),运行它并干净地结束。 我注意到,例如,当进程运行 25 天时,进程可能会死亡,留下 hprof,
我是一名优秀的程序员,十分优秀!