Eclipse - java.lang.ClassNotFoundException: HttpServlet

Boa tarde,

Estava utilizando o Eclipse normalmente, mas de uma hora para outra ele começou a apresentar:

java.lang.ClassNotFoundException: HttpServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Unknown Source)
20/10/2009 13:17:36 org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
20/10/2009 13:17:37 org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
20/10/2009 13:17:37 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080

O interessante é que para todo e qualquer servlet. Ele nem ao menos consegue importar o pacote javax.servlet.*.

Exemplo bem básico:

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		Cookie meuCookie = new Cookie("nome", "Arthur");
		meuCookie.setMaxAge(60);
		meuCookie.setSecure(false);
		meuCookie.setComment("Nome do meu filhote");
		response.addCookie(meuCookie);
		
		response.setContentType("text/html;charset=ISO-8859-1");
		String html = "<html><body><h2>Seu cookie foi criado com sucesso!</h2><br/>";
		html += "<a href=\"VisualizaCookie\">" + "Clique aqui para ver o Cookie criado. </a>";		
		html += "</body></html>";
		
		PrintWriter writer = response.getWriter();
		writer.print(html);
		writer.close();		
	}

O problema começou mais ou menos quando estava implementando um pool de conexões no Tomcat 6.0:

server.xml

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">

  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">
  
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>
    </Engine>
  </Service>
</Server>

context.xml

<?xml version='1.0' encoding='utf-8'?>


<Context path="/livro1">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    	<Resource name="jdbc/gmMaterias" auth="Container"
			type = "javax.sql.DataSource"
			factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
			driverClassName = "org.postgresql.Driver"
			url="jdbc:postgresql://localhost:5432/gmMaterias"
			username="postgres"
			password="pi31412"
			maxActive="30"
			maxIdle="20000"
			removeAbandoned="true"
			maxWait="120" />
        
</Context>

E o web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>livro1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>CriandoCookie</display-name>
    <servlet-name>CriandoCookie</servlet-name>
    <servlet-class>servlets.CriandoCookie</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CriandoCookie</servlet-name>
    <url-pattern>/CriandoCookie</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>VisualizaCookie</display-name>
    <servlet-name>VisualizaCookie</servlet-name>
    <servlet-class>servlets.VisualizaCookie</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>VisualizaCookie</servlet-name>
    <url-pattern>/VisualizaCookie</url-pattern>
  </servlet-mapping>
  <resource-ref>
    <res-ref-name>jdbc/gmMaterias</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
</web-app>

Alguém pode dar uma luz porque eu não consigo mais importar a javax.servlet.* ?

Uma vez tive um problema parecido com conflito de bibliotecas, o eclipse não sabia de qual jar puxar o tal pacote… Quando surge uns problemas assim, sem pé nem cabeça, eu corro pro backup mais próximo =p

Ê vida…
E o pior que o Eclipse começou a dar uns problemas quando um doido plugou o Pendrive dele no meu notebook. Um momento de distração e já era…