2013-06-28 4 views
0

모든 친구 : 부두에 대한 예외가 표시되면 혼란 스럽습니다.부두 스캐너 NullPointerException

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 코드가 nullpointer 예외를 발생?

부두 버전 : 8.1.3.v20120416

는 박쥐 우산, 그래서 당신의 사람이 도움 분기가 필요합니다.

답변

0

온라인 576에서 files은 null이며 f이 null임을 나타냅니다.

f이 성공적으로 인스턴스화되었는지 확인하십시오.

+0

이미 리눅스에서 현재 쉘의 핸들 번호를 알아 냈습니다. – hpy

+0

'f'가 실제로 존재하는 디렉토리라고 말하고 있습니까? – Mingyu

+0

yes는 jetty에있는 webapp의 기본 디렉토리입니다. – hpy

0

최근에 이와 비슷한 오류가 발생했습니다. 내가 한 일은 열린 파일의 최대 수에 OS 제한을 설정하는 것이 었습니다.

* soft nofile 65536 
* hard nofile 65536 

를 한 후 서버를 재부팅 :

은 다음 행을 추가하여는 /etc/security/limits.conf에서 설정할 수 있습니다.

*는이 설정이 모든 사용자에게 적용됨을 의미합니다. Jetty 프로세스를 실행하는 데 사용하는 특정 사용자를 입력 할 수 있습니다. 값 65536은 열 수있는 파일 (nofile)의 최대 수를 지정합니다. 이 설정의 세부 사항은 limits.conf 맨 페이지를 보면 알 수 있습니다.

+0

예. 핸들러 num이 너무 작습니다. – hpy