2010-04-14 1 views
0

나는 jetty-6.1.22가 설치된 리눅스에서 완벽하게 작동하는 하나의 웹 응용 프로그램을 보유하고 있습니다. 내가 WebAppClassLoader.java의 소스 코드에 확인부두를 본 사람이 리눅스에서 성공적으로 초기화되었지만 창 아래에서 예외가 발생했습니다.

java.lang.IllegalArgumentException: name 
     at sun.misc.URLClassPath$Loader.findResource(Unknown Source) 
     at sun.misc.URLClassPath.findResource(Unknown Source) 
     at java.net.URLClassLoader$2.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findResource(Unknown Source) 
     at org.mortbay.jetty.webapp.WebAppClassLoader.getResource(WebAppClassLoader.java:271) 
     at org.mortbay.resource.Resource.newSystemResource(Resource.java:203) 
     at org.mortbay.jetty.webapp.WebXmlConfiguration.configureDefaults(WebXmlConfiguration.java:159) 
     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1230) 

, 그것은 다음과 같습니다 :

String defaultsDescriptor=getWebAppContext().getDefaultsDescriptor(); 
if(defaultsDescriptor!=null&&defaultsDescriptor.length()>0) 
{ 
    Resource dftResource=Resource.newSystemResource(defaultsDescriptor); 
    if(dftResource==null) 
    dftResource=Resource.newResource(defaultsDescriptor); 
    configure(dftResource.getURL().toString()); 
    _defaultWelcomeFileList=_welcomeFiles!=null; 
} 
내가 창에서 실행하려고 할 때 그러나, 그것은 바로 초기화시 예외가 발생합니다

이 줄에서는 예외가 발생합니다. Resource.dftResource = Resource.newSystemResource (defaultsDescriptor);.

하지만 이해가 안됩니다. 어떻게 리눅스에서 작동하지만 윈도우에서는 작동하지 않습니까?

답변

0

당신이해야 할 유일한 것은 추출물을 "true"로 설정하는 것입니다.

<Call name="addLifeCycle"> 
    <Arg> 
    <New class="org.mortbay.jetty.deployer.WebAppDeployer"> 
     ... 
     <Set name="extract">true</Set> <-- here 
     ... 
    </New> 
    </Arg> 
</Call> 

또는

<Configure class="org.mortbay.jetty.webapp.WebAppContext"> 
    ... 
    <Set name="extractWAR">true</Set> <-- here 
    ... 
</Configure>