Контейнеры сервлетов в целом и GAE в частности не позволят вам использовать File API из контейнера сервлетов, как этот.
Вместо этого, автоматически подключите контроллер к ServletContext
и получитересурс из этого.Кроме того, ваша обработка исключений не велика, вы не должны игнорировать подобные исключения, они существуют по какой-то причине.
Что-то вроде должно быть в порядке:
@Controller
@RequestMapping("/myController")
public class MyController {
private @Autowired ServletContext servletContext;
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody String myTest() throws IOException {
InputStream inputStream = null;
try {
inputStream = servletContext.getResourceAsStream("/WEB-INF/content/somecontent.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
return bufferedReader.readLine();
} finally {
if (inputStream != null) {
inputStream.close();
}
}
}
}
В качестве альтернативы,если вы используете Spring 3.x, это может быть еще проще:
<mvc:view-controller path="/test" view-name="/WEB-INF/content/somecontent.txt"/>
Смотрите документацию, чтобы узнать, как это работает , но это может означать, что вы можете избежать любого кода.