getLocalAddr() is undefined for the type HttpServletRequest

Tenho uma classe que estou a compilar e que pus no classpath servlet.jar e servlet-api.jar. Aqui está um bocado do código.

 if (ClientTraceLog.isInfoEnabled()) {
          ClientTraceLog.info(String.format(MR_CLIENTTRACE_FORMAT,
                request.getLocalAddr() + ":" + request.getLocalPort(),
                request.getRemoteAddr() + ":" + request.getRemotePort(),
                totalRead, "MAPRED_SHUFFLE", mapId));
        }

Ao compilar a classe no eclipse, obtenho o seguinte erro:

The method getLocalAddr() is undefined for the type HttpServletRequest	TaskTracker.java	/Hadoop_MapReduce/org/apache/hadoop/mapred	line 2972	Java Problem
The method getLocalPort() is undefined for the type HttpServletRequest	TaskTracker.java	/Hadoop_MapReduce/org/apache/hadoop/mapred	line 2972	Java Problem
The method getRemotePort() is undefined for the type HttpServletRequest	TaskTracker.java	/Hadoop_MapReduce/org/apache/hadoop/mapred	line 2973	Java Problem

O servlet-api.jar que ponho no classpath pertence ao apache-tomcat-6.0.20.

Porque é que não encontro a classe? Como resolvo o problema?

Obrigado.

getLocalAddr()

De fato, o javadoc indica que esse método está presente a partir da especificação 2.4 de servlets, e o Tomcat implementa essa especificação desde a versão 5.0, ou seja, em tese esse método deveria estar disponível. Será que há algum outro JAR atrapalhando a história? (Isso é mais chato que parece).

Obrigado. Já consegui. Agora só está no classpath o servlet-api.jar e não o servlet.jar.