2013-04-19 2 views
-3

부두 6.1.21을 시작하는 이상한 예외가있다 :부두의 NPE

c:\TestJetty>java -jar start.jar 
java.lang.NullPointerException 
    at java.io.File.<init>(File.java:222) 
    at org.mortbay.start.Main.init(Main.java:465) 
    at org.mortbay.start.Main.start(Main.java:439) 
    at org.mortbay.start.Main.main(Main.java:119) 

구글은 -Djetty.home=.를 추가하는 것이 좋습니다는. 부두는이 논점으로 시작합니다. 그러나 다른 컴퓨터에서 부두는이 논쟁 없이도 시작됩니다 ... 매우 이상하게 보입니다. 모든 환경이 동일하게 보입니다.

먼저

+0

C : \ TestJetty 디렉토리에 무엇이 있는지 설명하고 있지 않습니다. –

+0

@JoakimErdfelt TestJetty 디렉토리에 부두 서버가 있습니다. 설명 된대로 일반적인 jetty 서버 버전 6.1.21입니다. 나는 당신이 볼 수있는 것처럼 평범한 방법으로 시작한다. 루트 디렉토리에 start.jar 파일이 포함되어 있어도 내용이없는 경우에도 부두는 NPE에서 시작하지 않습니다. os가 Windows 또는 Linux이든 상관 없습니다. 버그 추적기 또는 Google에서 검색 할 수없는 이상한 버그입니다. 게다가 다른 디렉토리의 일부 파일이이 예외적 인 원인이 될 수 있음을 알기는 어렵습니다. 내가 찾은 비슷한 질문에는 "Add -Djetty.home ..."을 제외하고는 아무런 답변이 없습니다. – svaor

+0

게다가이 버그는 다소 재미있었습니다. 좋아요. 한 번 더 빼고 질문을 삭제할 것입니다.) – svaor

답변

0
c:\TestJetty>echo 1 > c:\start.jar 

c:\TestJetty>java -jar start.jar 
java.lang.NullPointerException 
     at java.io.File.<init>(Unknown Source) 
     at org.mortbay.start.Main.init(Main.java:465) 
     at org.mortbay.start.Main.start(Main.java:439) 
     at org.mortbay.start.Main.main(Main.java:119) 

c:\TestJetty>rm c:\start.jar 

c:\TestJetty>java -jar start.jar 
2013-04-19 18:03:12.989::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 
... 
+0

이 대답은 아무 의미가 있습니까? – carlspring

+0

@carlspring 루트 디렉토리 (c : \)에 start.jar 파일이 있으면 c : \ SomeDir에서 돌진해야한다고 생각하십니까? 대답.이 경우를 내 답변에 표시했습니다. 원한다면 확인해보십시오. 나는이 문제를 검색하고 부두 프로젝트 코드에서 버그를 검색하는 데 시간을 보냈다. 나는이 대답을 다른 누군가를 위해 이번에 저장하기를 바랍니다. – svaor

+2

당신의 대답은 당신이하고있는 일에 대한 실제적인 설명을 포함하고 있지 않습니다. 당신이 명령과 출력의 목록으로 보여주고있는 것이 사실이 아닙니다. 귀하의 질문을 먼저 설명하십시오. 그런 다음 답안의 단계를 설명하십시오. 위의 내용은 실제로 의미가 없습니다. 상세한 답변은 – carlspring

2

는 무슨 일이 일어나고 있는지 볼 수 있습니다 하지만 ... ... 내 환경

C:\>ver 

Microsoft Windows [Version 6.1.7601] 

C:\>systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 
OS Name:     Microsoft Windows 7 Home Premium 
OS Version:    6.1.7601 Service Pack 1 Build 7601 

C:\jetty-6.1.21>java -version 
java version "1.6.0_30" 
Java(TM) SE Runtime Environment (build 1.6.0_30-b12) 
Java HotSpot(TM) Client VM (build 20.5-b03, mixed mode, sharing) 


C:\jetty-6.1.21>dir 
Volume in drive C has no label. 
Volume Serial Number is C8CF-820B 

Directory of C:\jetty-6.1.21 

04/19/2013 11:51 AM <DIR>   . 
04/19/2013 11:51 AM <DIR>   .. 
04/19/2013 11:51 AM <DIR>   bin 
04/19/2013 11:50 AM <DIR>   contexts 
04/19/2013 11:51 AM <DIR>   contrib 
04/19/2013 11:50 AM <DIR>   distribution 
04/19/2013 11:51 AM <DIR>   etc 
04/19/2013 11:51 AM <DIR>   examples 
04/19/2013 11:50 AM <DIR>   extras 
04/19/2013 11:51 AM <DIR>   javadoc 
04/19/2013 11:51 AM <DIR>   jxr 
04/19/2013 11:51 AM <DIR>   lib 
04/19/2013 11:51 AM <DIR>   LICENSES 
09/21/2009 11:07 PM <DIR>   logs 
04/19/2013 11:51 AM <DIR>   modules 
09/21/2009 11:07 PM    1,621 NOTICE.txt 
04/19/2013 11:51 AM <DIR>   patches 
09/22/2009 12:17 AM    9,170 pom.xml 
04/19/2013 11:51 AM <DIR>   project-website 
09/21/2009 11:07 PM    4,253 README.txt 
04/19/2013 11:51 AM <DIR>   resources 
09/22/2009 04:44 PM   17,239 start.jar 
09/21/2009 11:07 PM   161,333 VERSION.txt 
04/19/2013 11:50 AM <DIR>   webapps 
       5 File(s)  193,616 bytes 
       19 Dir(s) 315,649,884,160 bytes free 

다음, ... 일반적으로 그것을 시도 할 수 있습니다

C:\jetty-6.1.21>java -jar start.jar 
2013-04-19 11:54:10.334::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 
2013-04-19 11:54:11.019::INFO: jetty-6.1.21 
2013-04-19 11:54:11.133::INFO: Deploy C:\jetty-6.1.21\contexts\test.xml -> org. 
[email protected]{/,C:\jetty-6.1.21/webapps/test} 
2013-04-19 11:54:11.171::INFO: Deploy C:\jetty-6.1.21\contexts\javadoc.xml -> o 
[email protected]{/javadoc,file:/C:/jetty-6.1.21/ja 
vadoc/} 
2013-04-19 11:54:11.287::INFO: Deploy C:\jetty-6.1.21\contexts\test-jndi.xml -> 
[email protected]{/test-jndi,C:\jetty-6.1.21/conte 
xts/test-jndi.d} 

예상대로 작동합니다.

C:\start.jar

C:\>dir *.jar 
Volume in drive C has no label. 
Volume Serial Number is C8CF-820B 

Directory of C:\ 

04/19/2013 12:15 PM     1 start.jar 
       1 File(s)    1 bytes 
       0 Dir(s) 315,647,086,592 bytes free 

C:\jetty-6.1.21>java -jar start.jar 
java.lang.NullPointerException 
     at java.io.File.<init>(Unknown Source) 
     at org.mortbay.start.Main.init(Main.java:465) 
     at org.mortbay.start.Main.start(Main.java:439) 
     at org.mortbay.start.Main.main(Main.java:119) 

그래의 존재의 주름을 소개하자, 그 올바른 동작하지 않습니다.

C:\jetty-6.1.21>java -DDEBUG -jar start.jar 
config=org/mortbay/start/start.config 
T $(jetty.class.path).path       always 
F $(jetty.lib)/**         exists $(jetty.lib) 
F jetty.home=.          ! exists $(jetty.home)/start.jar 
F jetty.home=..         ! exists $(jetty.home)/start.jar 
F jetty.home=/home/jetty       ! exists $(jetty.home)/start.jar 
F jetty.home=/C:/jetty        ! exists $(jetty.home)/start.jar 
F jetty.home=.          ! exists $(jetty.home)/start.jar 
T org.mortbay.xml.XmlConfiguration.class 
    CLASS=org.mortbay.xml.XmlConfiguration 
T $(start.class).class 
T $(jetty.home)/etc/jetty.xml      nargs == 0 
    ARGS+=\etc\jetty.xml 
T $(jetty.home)/lib/*        always 
T $(jetty.home)/lib/jsp-2.1/*      java >= 1.5 
T $(jetty.home)/lib/jsp-2.0/*      ! available org.apache.jasper.servlet.JspServlet 
T $(jetty.home)/lib/management/* 
F $(jetty.home)/lib/management/mx4j/*    java < 1.5 
T $(jetty.home)/lib/naming/* 
T $(jetty.home)/lib/plus/* 
T $(jetty.home)/lib/xbean/* 
T $(jetty.home)/lib/wadi/* 
T $(jetty.home)/lib/grizzly/* 
T $(jetty.home)/lib/annotations/*     java >= 1.5 

T $(jetty.home)/lib/jre1.5/**      java >= 1.5 
T $(jetty.home)/lib/ext/**      always 
T /usr/share/java/ant.jar       ! available org.apache.tools.ant.Main 
T $(jetty.home)/resources/ 
    !C:\resources 
java.lang.NullPointerException 
     at java.io.File.<init>(Unknown Source) 
     at org.mortbay.start.Main.init(Main.java:465) 
     at org.mortbay.start.Main.start(Main.java:439) 
     at org.mortbay.start.Main.main(Main.java:119) 

그래, F (거짓) $(jetty.home) 반환

에 대한 모든 테스트 당신은 org.mortbay.start.Main 버그 (안 start.config)을 발견 한 것 같다 ...이 벌어지고 어떻게 생각하는지 부두 볼 수 있습니다.

불행히도, 부두 6의 수명이 끝나기 전에이 부두 6 버그는 수정되지 않습니다.

이 버그가 부두 7, 8 또는 9에 있는지 확인합니다.

C:\jetty-distribution-7.6.10.v20130312>java -jar start.jar 
2013-04-19 12:21:33.910:INFO:oejs.Server:jetty-7.6.10.v20130312 
2013-04-19 12:21:33.947:INFO:oejdp.ScanningAppProvider:Deployment monitor C:\jet 
ty-distribution-7.6.10.v20130312\webapps at interval 1 
2013-04-19 12:21:33.956:INFO:oejd.DeploymentManager:Deployable added: C:\jetty-d 
istribution-7.6.10.v20130312\webapps\spdy.war 
2013-04-19 12:21:34.078:INFO:oejw.WebInfConfiguration:Extract jar:file:/C:/jetty 
-distribution-7.6.10.v20130312/webapps/spdy.war!/ to C:\Users\joakim\AppData\Loc 
al\Temp\jetty-0.0.0.0-8080-spdy.war-_spdy-any-\webapp 

C:\jetty-distribution-8.1.10.v20130312>java -jar start.jar 
2013-04-19 12:21:46.946:INFO:oejs.Server:jetty-8.1.10.v20130312 
2013-04-19 12:21:46.984:INFO:oejdp.ScanningAppProvider:Deployment monitor C:\jet 
ty-distribution-8.1.10.v20130312\webapps at interval 1 
2013-04-19 12:21:46.995:INFO:oejd.DeploymentManager:Deployable added: C:\jetty-d 
istribution-8.1.10.v20130312\webapps\spdy.war 
2013-04-19 12:21:47.115:INFO:oejw.WebInfConfiguration:Extract jar:file:/C:/jetty 
-distribution-8.1.10.v20130312/webapps/spdy.war!/ to C:\Users\joakim\AppData\Loc 
al\Temp\jetty-0.0.0.0-8080-spdy.war-_spdy-any-\webapp 

C:\jetty-distribution-9.0.2.v20130417>java -jar start.jar 
2013-04-19 12:22:19.127:WARN::main: test-realm is deployed. DO NOT USE IN PRODUC 
TION! 
2013-04-19 12:22:19.132:INFO:oejs.Server:main: jetty-9.0.2.v20130417 
2013-04-19 12:22:19.214:INFO:oejs.AbstractNCSARequestLog:main: Opened C:\jetty-d 
istribution-9.0.2.v20130417\logs\2013_04_19.request.log 
2013-04-19 12:22:19.251:INFO:oejdp.ScanningAppProvider:main: Deployment monitor 
[file:/C:/jetty-distribution-9.0.2.v20130417/webapps/] at interval 1 
2013-04-19 12:22:19.669:INFO:oejsh.ContextHandler:main: started o.e.j.w.WebAppCo 
[email protected]{/,file:/C:/jetty-distribution-9.0.2.v20130417/webapps/ROOT/,AVAIL 
ABLE}{C:\jetty-distribution-9.0.2.v20130417\webapps\ROOT} 
2013-04-19 12:22:19.703:INFO:oejsh.ContextHandler:main: started o.e.j.s.h.Contex 
[email protected]{/javadoc,file:/C:/jetty-distribution-9.0.2.v20130417/javadoc,A 
VAILABLE} 
부두 7,8 존재

없음 또는

9.도 7.0.0 마일스톤이 버그 부두 6.1 보낸 부두 124 개 버전 중 하나에서 존재하지 않는 것을 보여준다 부두 ​​초기 버전 테스트. 26.

업그레이드를 고려하십시오.

+0

Thnxs입니다. 실제로 나는 [자신의 질문을 만들고 답변하는] 것을 의미합니다 (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/). 불행히도 내 대답은 확실하지 않았습니다. 그래서, 당신의 +1;) – svaor