Dúvidas para guardar informações no contexto da aplicação

Boa tarde, preciso ler um arquivo e guardar o conteúdo dele no contexto da aplicação, já fiz alguns teste, o primeiro foi adicionar uma informação qualquer e tentar capturar, mas não obtive sucesso (java.lang.NullPointerException), alguém poderia me ajudar por favor, se eu conseguir fazer isso dai parto para o próximo passo que é ler o arquivo.
Detalhe estou trabalhando com velocity1.4

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.http.HttpServlet;
import javax.servlet.ServletException;
public class TesteContexto extends HttpServlet {   
    public void adicionaTextoMemoria() {
        try {
            System.out.println("#### Entrou no Metodo adicionaTextoMemoria #######");
            ServletContext context = getServletContext();
            String valor = new String();
            valor = "Texto memoria";
            context.setAttribute("valor", valor);
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }
 
    public void pegaTextoMemoria() throws ServletException{
        try {
            System.out.println("#### Entrou no Metodo pegaTextoMemoria #######");
            ServletContext context = getServletContext();
            Object valorMemoria = context.getAttribute("valor");
            System.out.println("@@@ valorMemoria: " + valorMemoria.toString());
        } catch (NullPointerException e) {
            e.printStackTrace();
        }
    }
}

toolbox.xml

<toolbox>
......
	<tool>
		<key>testecontexto</key>
		<scope>application</scope>
		<class>br.com.xxx.util.TesteContexto</class>
	</tool>	
.......	
</toolbox>

Chamada no velocity

$testecontexto.adicionaTextoMemoria()
$testecontexto.pegaTextoMemoria()