`
wenjinglian
  • 浏览: 824666 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

Tomcat启报错,error:too many open files

    博客分类:
  • JAVA
阅读更多

 

原因:tomcat下面工程太多,其它一些项目正常启动,但我们的项目启动不了,并且项目报出的错误根本找不到原因,因为报出的错是开源项目里的。

项目错误:

SEVERE: Servlet.service() for servlet default threw exception
java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/profiling/UtilTimerStack
	at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:111)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
	at java.lang.Thread.run(Thread.java:619)
Dec 7, 2011 6:20:59 PM org.apache.catalina.core.StandardWrapperValve invoke
 

后来找到 tomcat/logs/localhost.log 定位到了错误.

 

SEVERE: Servlet.service() for servlet validateImg threw exception
javax.imageio.IIOException: Can't create output stream!
	at javax.imageio.ImageIO.write(ImageIO.java:1560)
	at com.msd.store.login.ValidateImg.service(ValidateImg.java:104)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:389)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
	at java.lang.Thread.run(Thread.java:619)
Caused by: javax.imageio.IIOException: Can't create cache file!
	at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:397)
	at javax.imageio.ImageIO.write(ImageIO.java:1558)
	... 20 more
Caused by: java.io.IOException: Too many open files
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.checkAndCreate(File.java:1704)
	at java.io.File.createTempFile(File.java:1792)
	at javax.imageio.stream.FileCacheImageOutputStream.<init>(FileCacheImageOutputStream.java:71)
	at com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:50)
	at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:393)
	... 21 more

 

 Caused by: java.io.IOException: Too many open files 

 

 

转:解决方法

大家都知道Linux系统默认打开文件数是1024,而实际的生产环境中,这个值总是显得太小,而太小的后果就是你的系统会报:too many open files 等这样的错误导致你系统死掉,所以我们总是要修改这个值,虽然表面上看来,Linux提供了ulimit这样的命令让你修改这个文件打开数,但不幸的是,过程远远没有看到的那么简单,下面子猴就谈谈这方面的问题。

1、  首先我们通过ulimit –a命令来查看系统的一些资源限制情况,如下

红框中所示的是最大文件打开数,一般情况下是1024,但由于我系统已经改为了32768,所以现在看到的是32768。

我们也可以通过ulimit –n命令来查看最大文件打开数,如下:

32768

2、  修改目标

我们的目标是:让每一个用户登录系统后系统打开的最大文件数都是我们设定好的。

但我这里不得不说的是:非常遗憾,网上很多这方面关于ulimit设置修改资源限制的文章,但没一篇文章管用。

把这个目标分解为两个目标:

2.1、设置对root用户登录系统生效

这个目标可以实现起来不难

2.2、设置对所有用户生效

这个就非常麻烦了,弄不好还会把你的系统给整坏,因为要重编译Linux的内核才行!

所以权衡之下,我只实现了第一个目标,因为第二个目标的风险太大,我想如果我之前知道这点,那么我在装系统的时候我会先做这个处理,但现在我觉得已经晚了。

3、  修改的地方

3.1、修改/etc/security/limits.conf

通过 vi /etc/security/limits.conf修改其内容,在文件最后加入(数值也可以自己定义):

* soft  nofile = 32768

* hard  nofile = 65536

3.2、修改/etc/profile

通过vi /etc/profile修改,在最后加入以下内容

ulimit -n 32768

然后重新登录即可生效了。

说明

其实只修改/etc/profile就可以生效了,但我还是建议把/etc/security/limits.conf也修改一下。

最后强调的是,你如果要使得修改对所有用户都生效,那么现在看来你只能重新编译Linux的内核才行。

 

http://www.zihou.me/html/2010/06/12/2281.html

分享到:
评论

相关推荐

    Too many open files 解决方法

    ### Too many open files 解决方法 #### 背景与问题描述 在将Web服务器从Windows环境迁移到Linux环境后,遇到了一个常见的问题:“java.net.SocketException: Too many open files”。这种异常通常发生在高并发...

    解决TOMCAT启动报错:tcnative.dll

    Tomcat报错,如: Can't load IA 32-bit .dll on a AMD 64-bit platform Can't load IA 64-bit .dll on a AMD 64-bit platform 都应该用x64里面的dll文件 不同的硬件平台需要与之对应的dll即可

    tomcat启动报错

    tomcat启动报错,启动超时,找不到类文件四渡赤水打成不是的

    Tomcat启动时报错:java.lang.UnsatisfiedLinkError的解决

    之前tomcat启动老是报错,虽然不影响项目的启动运行,但是有强迫症的程序员会心里不爽: 如下: 问题分析 由于本机安装的jdk版本与tomcat中使用的jdk版本不一致导致的。 解决方法 后面我把原先tomcat启动环境用的...

    在线等待解决java tomcat 报错问题:java.lang.NoClassDefFoundError: javax/tools/StandardJavaF

    在处理这类问题时,首先应该定位问题来源,比如查看Tomcat的错误日志(如`catalina.out`或`localhost.log`),这通常能提供更多的报错信息。然后,根据错误信息找到相应的类或库,确认其是否存在于正确的位置。最后...

    eclipse部署tomcat 报错

    "eclipse部署tomcat报错解决方案" 在Eclipse中部署Tomcat服务器时,可能会遇到各种问题。本文将讨论在Eclipse中部署Tomcat服务器时出现的问题和解决方案。 问题描述 在Eclipse中部署Tomcat服务器时,可能会出现...

    编译tomcat源码所需jar包

    在IT行业中,Tomcat是一款广泛使用的开源Web服务器和应用服务器,尤其在Java环境下,它扮演着重要的角色。本文将深入探讨“编译Tomcat源码所需jar包”这一主题,帮助开发者了解如何从源码构建Tomcat,以及在这个过程...

    tomcat启动报错:java.util.zip.ZipException的解决方法

    在使用Apache Tomcat服务器时,有时会遇到启动异常的情况,其中一种常见的错误是`java.util.zip.ZipException`。这个异常通常表明在处理ZIP或JAR文件时遇到了问题,可能是因为文件损坏、格式不正确或者无法打开。在...

    tomcat-juli.jar 用于在tomcat启动报错时除错

    tomcat-juli.jar 用于在tomcat启动报错时除错

    JSP中常见的Tomcat报错错误解析

    ### JSP中常见的Tomcat报错错误解析 在Java Server Pages (JSP) 开发过程中,经常遇到Apache Tomcat服务器抛出的各种错误代码。这些错误不仅会影响应用的正常运行,而且有时还会导致服务不可用。因此,理解这些错误...

    tomcat启动不了问题处理

    ### tomcat启动不了问题处理 在IT领域,Tomcat服务器是一款非常流行的开源Web服务器,它主要用来部署Java Web应用程序。然而,在使用过程中,用户可能会遇到Tomcat无法启动的问题。本文将详细探讨导致Tomcat启动...

    tomcat报错Service Temporarily Unavailable tomcat解决方式

    Tomcat 报错 Service Temporarily Unavailable 解决方式 Service Temporarily Unavailableerror 是 Tomcat 中常见的一种错误,通常是服务器维护或容量问题引起的。解决这个错误的方法通常是重启服务器,但是有时候...

    tomcat报错

    ### Tomcat报错原因分析及解决方案 在部署和运行基于Java的应用程序时,Apache Tomcat作为一款广泛使用的轻量级Web服务器,有时会出现各种错误提示。本次讨论的是一个较为常见的问题:“tomcat报错,原因在于JDK...

    Tomcat服务器报错对应值解析

    ### Tomcat服务器报错对应值解析 在日常的Web应用开发与维护过程中,经常会遇到各种各样的服务器错误。了解这些错误代码的意义及其处理方法对于快速定位问题并进行修复至关重要。以下将详细介绍Tomcat服务器中常见...

    Tomcat报错: JDBC unregister 解决办法

    标题中的“Tomcat报错:JDBC unregister 解决办法”是指在使用Apache Tomcat服务器时,遇到的一个常见问题,即Web应用程序在启动时成功注册了JDBC驱动,但在关闭时未能正确注销,导致Tomcat在防止内存泄漏的机制下...

    Tomcat Using CLASSPATH:报错和启动成功无法访问情况解决方案

    Tomcat 排错方案一、报错问题解:1.报错2.解决方案:二、Tomcat启动成功无法访问 一、报错问题解: 1.报错 Using CLASSPATH: /...

    Linux下打开的文件过多错误

    Linux下运行tomcat或者was出现java.net.SocketException: 打开的文件过多错误 tomcat报“too many open files”的错误,解决办法如下:

    上传war文件大小超过Tomcat7最大文件限制报错

    ### 上传WAR文件大小超过Tomcat 7最大文件限制报错 #### 背景介绍 在部署Web应用程序时,可能会遇到因WAR文件过大而无法正常部署的问题。具体表现为当WAR文件大小超过了Tomcat服务器配置的最大限制时,系统会拒绝...

Global site tag (gtag.js) - Google Analytics