在窗口上运行的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
上的方法检查该目录是否存在。