2013-06-28 51 views
0

每個好友: 我很困惑,當我看到關於碼頭的這個異常。jetty掃描器空指針異常

Exception in thread "Scanner-1" java.lang.NullPointerException 
at org.eclipse.jetty.util.Scanner.scanFile(Scanner.java:576) 
at org.eclipse.jetty.util.Scanner.scanFiles(Scanner.java:438) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:397) 
at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:348) 
at java.util.TimerThread.mainLoop(Timer.java:512) 
at java.util.TimerThread.run(Timer.java:462) 
Exception in thread "Scanner-0" java.lang.NullPointerException 
at org.eclipse.jetty.util.Scanner.scanFile(Scanner.java:576) 
at org.eclipse.jetty.util.Scanner.scanFiles(Scanner.java:438) 
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:397) 
at org.eclipse.jetty.util.Scanner$1.run(Scanner.java:348) 
at java.util.TimerThread.mainLoop(Timer.java:512) 
at java.util.TimerThread.run(Timer.java:462) 

約Scanner.java的源代碼是:

// If it is a directory, scan if it is a known directory or the depth is OK. 
    573   if (f.isDirectory() && (depth<_scanDepth || _scanDepth==-1 ||   
    _scanDirs.contains(f))) 
    574   { 
    575    File[] files = f.listFiles(); 
    576    for (int i=0;i<files.length;i++) 
    577     scanFile(files[i], scanInfoMap,depth+1); 
    578   } 
    579  } 

怎麼行576碼出現空指針異常?

碼頭版本:8.1.3.v20120416

需要你幫助的傢伙,所以第三季度的玉米粥。

回答

0

在行576上,files爲空,這意味着f爲空。

請檢查f是否成功實例化。

+0

已經知道它在linux中當前shell的句柄數量。 – hpy

+0

你是說'f'是一個實際存在的目錄嗎? – Mingyu

+0

是的,是jetty中webapp的基礎目錄。 – hpy

0

我最近遇到了這個非常相同的錯誤。我所做的就是對最大打開的文件數量設置操作系統限制。

這可以在/etc/security/limits.conf通過添加下列行來設置:

* soft nofile 65536 
* hard nofile 65536 

,然後重新啓動服務器。

*表示此設置適用於所有用戶。您可以放入您用來運行Jetty進程的特定用戶。值65536指定可以打開的最大文件數(nofile)。這個設置的細節可以通過查看limits.conf手冊頁找到。

+0

是的。 handler num太小。 – hpy