gpt4 book ai didi

maven - 运行 mvn org.mortbay.jetty :jetty-maven-plugin:run 时出现 "Too many open files"异常

转载 作者:行者123 更新时间:2023-12-04 14:36:35 27 4
gpt4 key购买 nike

在我的一个项目中,我使用了 Lift 2.5 M4 和 Scala 2.10.0。在这个项目中,我使用 Jetty 8.1.10.v20130312。但是在通过 mvn jetty 运行项目时,出现意外异常。

我已经通过以下方式在 pom.xml 中配置了 jetty 插件:

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.10.v20130312</version>
<configuration>
<systemProperties>
<systemProperty>
<name>org.apache.cocoon.log4j.loglevel</name>
<value>WARN</value>
</systemProperty>
</systemProperties>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>9090</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
<webApp>
<contextPath>/</contextPath>
</webApp>
<scanIntervalSeconds>0</scanIntervalSeconds>
<stopKey>stop</stopKey>
<stopPort>9999</stopPort>
</configuration>
</plugin>

我在运行命令时遇到异常:- mvn org.mortbay.jetty:jetty-maven-plugin:run

2013-04-24 06:49:39.216:WARN:oeja.AnnotationParser:EXCEPTIONjava.io.FileNotFoundException:/home/ayush/scala-lift/knolgame/target/classes/com/knolgame/lib/TransactionStatus$$anonfun$find$1.class(打开的文件太多) 在 java.io.FileInputStream.open( native 方法) 在 java.io.FileInputStream.(FileInputStream.java:106) 在 org.eclipse.jetty.util.resource.FileResource.getInputStream(FileResource.java:286) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:754) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) 在 org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747)

但是当我使用 jetty 6.1.25 时,它工作正常。

<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.25</version>
<configuration>
<systemProperties>
<systemProperty>
<name>org.apache.cocoon.log4j.loglevel</name>
<value>WARN</value>
</systemProperty>
</systemProperties>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>9090</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
<contextPath>/</contextPath>
<scanIntervalSeconds>0</scanIntervalSeconds>
<stopKey>stop</stopKey>
<stopPort>9999</stopPort>
</configuration>
</plugin>

谁能帮我解决这个问题?我必须在我的应用程序中使用最新的 Lift、Scala 和 jetty 版本。

提前致谢。

问候,阿尤什

最佳答案

“太多打开的文件”通常意味着您的 java 进程不允许打开更多的文件描述符。但是,如果这种情况发生在 jetty 启动时没有打开任何大量连接,那么就会发生一些奇怪的事情。

首先,您可以通过执行以下命令来检查配置的允许打开文件(或文件描述符)的软限制:$ ulimit -a在你的命令行上。

如果您需要进一步访问,请将结果粘贴到此处。

然后你可以使用像lsof这样的工具检查您的 java 进程因上述给定异常而失败的文件当时已打开。 $ lsof -p <pid>其中 pid 是您的 java/jetty 进程的 processId 应该会给您一些提示。

如果您的软限制太小,请尝试按照互联网上的许多教程之一提高它,例如:http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ (我发现的第一个结果)将限制提高到适当的程度。什么值适合您的应用程序主要取决于您将服务的并发打开连接的数量。

关于maven - 运行 mvn org.mortbay.jetty :jetty-maven-plugin:run 时出现 "Too many open files"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16183573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com