Я не знаком с интерфейсом ContextInitializer, на который вы ссылаетесь, но, исходя из исключения, вы получаете мою первую реакцию: нет, вы не можете вызвать getServletContext внутри метода contextInitialized. Если вы посмотрите http://www.docjar.com/html/api/javax/servlet/GenericServlet.java.html,, то увидите, что в строке 160 он пытается получить контекст из ServletConfig, и, очевидно, объект ServletConfig для этого сервлета еще не инициализирован.
Лучше всего (на мой взгляд) было бы выполнить код, который вы хотите запустить, в момент инициализации и ServletConfig, и ServletContext - поскольку я не знаю, в какой среде вы работаете ( как я уже сказал, я не знаком с ContextInitializer, поэтому я не знаю, откуда это взялось), я не могу помочь слишком сильно, насколько идет жизненный цикл вашего сервлета.
В зависимости от того, что именно вы пытаетесь сделать, вы можете рассмотреть возможность использования входного потока в качестве статического поля. Внутри вашего метода doGet / doPost вы бы проверили, инициализирован ли он - если он, то отлично, продолжает нормально; и если это не так, то инициализируйте его по мере необходимости. Ваш контекст и конфигурация должны быть доступны в doGet / doPost, так что вам будет хорошо.