在窗口上运行的Tomcat7

问题描述:

我有一个Tomcat7安装在我的磁盘上的文件夹,我使用它在eclipse上运行它的Web应用程序上做了一些测试,它工作良好。当我尝试部署一个独立的Tomcat服务器上的应用程序它提供了一个错误:(我使用Windows)在窗口上运行的Tomcat7

Fev 08, 2012 9:10:04 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Allocate exception for servlet Process 
java.lang.NullPointerException 
    at hs.server.CommandFactory.<init>(CommandFactory.java:27) 
    at hs.server.Process.init(Process.java:40) 

和线27在这种背景:

19-String pathname = "/"+packageName.replace(".", "/")+"/"; 
20  //String pathname = packageName.replace(".", "/"); 
21-  URL resource = loader.getResource(pathname); 
22-  File commandDir = (new File(resource.getFile())); 
23-  
24-  //File commandDir = new File(loader.getResource(packageName.replace(".", 25-"/")).getFile()); 
26- 
27-  for(String classFilepath: commandDir.list()) { 

我猜是关于URL的问题,但问题是我在eclipse上的tomcat实例上运行它没有任何问题。谢谢

File.list()将返回null如果File代表一个不存在的目录。这个null会导致你的for循环引发空指针异常。

您需要让自己的代码具有防御性,并且在尝试阅读之前使用File上的方法检查该目录是否存在。