На моей странице JSP мне нужно показать список со всеми файлами, находящимися в настоящее время в папке/public.Путь к файлу дает NullPointer
Это проект j2ee с весной & спящий режим. В моем классе обслуживания для получения списка всех файлов, у меня есть следующие:
public class UploadService {
private static List<File> list = new ArrayList<File>();
public static List<File> getFileList() {
File folder = new File("C:\\Users\\Admin\\Documents\\GitHub\\MyApp\\src\\main\\webapp\\resources\\public");
File[] listOfFiles = folder.listFiles();
list.addAll(Arrays.asList(listOfFiles));
return list;
}
Это работает, однако, когда я записываю:
File folder = new File(Structure.defaultUrl+"/public/");
я получаю NullPointer ..
defaultUrl выглядит следующим образом:
public class Structure {
/**
*
*/
public static String defaultUrl = "/MyApp";
В ResourceHandler:
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/public/**").addResourceLocations("/resources/public/");
}
Странная часть, на главной странице, где у меня есть:
<a href ="<%=Structure.defaultUrl%>/public/AlgVW2011.pdf">
Это делает работу. Я действительно застрял сейчас, кто-нибудь знает, что я делаю неправильно?
Edit:
Искал проблемы, вероятно, некоторые проблемы в MvcConfiguration.java.
public class Initializer implements WebApplicationInitializer {
/**
*
* @param servletContext
* @throws ServletException
*/
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(MvcConfiguration.class);
servletContext.addListener(new ContextLoaderListener(ctx));
ctx.setServletContext(servletContext);
Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
}
Попробуйте использовать это: 'File (getContextRoot() + "SRC/основные/WebAPP/ресурсы/общественные");' –
Я попробовал ваше предложение, но метод getContextRoot() не может быть найден в Класс UploadService. Когда я искал его в Интернете, я видел, что код используется в классах запросов Servlet - я не могу получить этот метод в классе UploadService. –
жаль, что это была моя ошибка, а не 'getContextRoot()' its 'getContextPath()'. Я прошу прощения за свою ошибку. –