Eu tive esse problema no Tomcat 7 e o motivo foi que eu tinha o antiResourceLocking definido como verdadeiro (parecia uma boa ideia ...).
De acordo com os documentos ( http://tomcat.apache.org/tomcat-7.0-doc/config/context.html ):
Observe que definir isso como verdadeiro tem alguns efeitos colaterais, incluindo a desativação do recarregamento do JSP em um servidor em execução: consulte Bugzilla 37668.
No meu caso, até fez com que arquivos de texto estático simples fossem armazenados em cache.
Então, em resumo, pelo menos para o desenvolvimento rápido eu tive que usar:
antiResourceLocking="false"
cachingAllowed="false"