在我的項目之一,我用電梯2.5 M4和Scala 2.10.0。在這個項目中,我使用的是Jetty 8.1.10.v20130312。 但是,通過mvn碼頭運行項目時,我收到意想不到的異常。「打開的文件過多」的異常,同時運行MVN org.mortbay.jetty:碼頭 - Maven的插件:運行
我已經在pom.xml中配置插件碼頭下面的方法:
<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:碼頭 - Maven的插件:運行
2013-04-24 06:49:39.216:WARN:oeja.AnnotationParser:EXCEPTION java.io.FileNotFoundException:/ home/ayush/scala-lift/knolgame/target/classes/com/knolgame/lib/TransactionStatus $ $ anonfun $找到$ 1.class(打開的文件太多) 在java.io.FileInputStream.open(本機方法) 在java.io.FileInputStr (FileInputStream.java:106) at org.eclipse.jetty.util.resource.FileResource.getInputStream(FileResource.java:286) at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:754 ) at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747) at org.eclipse.jetty.annotations .AnnotationParser.parse在org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:747)(AnnotationParser.java:747)
,但是當我使用碼頭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版本。
在此先感謝。
問候, AYUSH
感謝您的回覆。我檢查了我的ulimit。它已經是無限的。 – 2013-04-25 17:42:51
那麼請您使用上述檢查什麼的文件是由JVM時出現此錯誤打開lsof的。 – 2013-04-26 11:33:55
我遇到了類似的問題,從jetty 6升級到8。似乎jetty 8做了一些可以打開大量文件的東西(雖然看起來並不慢)。我採取了以下兩個步驟來解決問題:1)刪除作爲jetty 8的一部分嵌入的默認webapps和上下文2)軟文件限制4096,硬文件限制爲10240 – Taylor 2013-08-13 16:54:21