Servlets 2 problema no mapeamento (antes funcionava!)

Pessoal, boa tarde ,

Estava estudando java web pela apostila da CAELUM , consegui fazer todos os exercicios tudo funcionando uma maravilha , então eu tive que instalar outro HD fiz backup do meu workspace e eclipse , instalei o TOMCAT no mesmo lugar.

Mas agora quando tento submeter meu formulário pra uma action apresenta o erro.

“There is no Action mapped for namespace / and action adicionaTarefa”

Detalhe : os filtros de tempo de execução estão funcionando(mapeados no web.xl) e quando eu mudo o mapeamento no WEB.xml da action pra alguma classe que não existe é mostrado a página html configurada no web.xml pra qualquer erro ( ou seja as configurações de filtros e de erro do web.xml o tomcat está entendendo , mas a do servlet não está)

segue o código do arquivo web.xml

<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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Estudo</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>bemvindo.jsp</welcome-file>
  
  </welcome-file-list>
  
  <servlet>
  	<servlet-name>PrimeiraServlet</servlet-name>
  	<servlet-class>estudo.OiMundo</servlet-class>    	
  </servlet>
  <servlet-mapping>
  	<servlet-name>PrimeiraServlet</servlet-name>
  	<url-pattern>/oi/*</url-pattern>
  </servlet-mapping>
  
  <servlet>
  	<servlet-name>AdicionaContato</servlet-name>
  	<servlet-class>servlet.AdicionaContatoServlet</servlet-class>
  </servlet>	
  <servlet-mapping>
  	<servlet-name>AdicionaContato</servlet-name>
  	<url-pattern>/adicionaContato</url-pattern>
  </servlet-mapping>
  
  <error-page>
  	<exception-type>java.lang.Exception</exception-type>
  	<location>/erro.html</location>
  </error-page>
  
  <filter>
  	<filter-name>cronometro</filter-name>
  	<filter-class>filtro.FiltroTempoExecucao</filter-class>  	
  </filter>  
  <filter-mapping>
  	<filter-name>cronometro</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <filter>
  	<filter-name>FiltroConexao</filter-name>
  	<filter-class>filtro.FiltroConexao</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>FiltroConexao</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

erro no console :


WARNING: Could not find action or result
There is no Action mapped for namespace / and action name adicionaContato. - [unknown location]
	at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:189)
	at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
	at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
	at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at filtro.FiltroConexao.doFilter(FiltroConexao.java:33)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at filtro.FiltroTempoExecucao.doFilter(FiltroTempoExecucao.java:25)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)

já tentei dar um clean e tirar e colocar o projeto do servidor tomcat… existe alguma coisa que posso fazer pro tomcat reconhecer o mapeamento ?

Abaixo tem uma parte do log de quando inicia o tomcat… acho que pode ter haver com o erro…

alguma ajuda please?


INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_23\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\
May 12, 2011 3:03:48 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Estudo' did not find a matching property.
May 12, 2011 3:03:48 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:tarefa' did not find a matching property.

cria um novo projeto e copia só o src do seu projeto antigo e cola no projeto novo…vai funcionar

cara,

Fiz isso e não funcionou, detalhe se eu tirar as tags abaixo do web.xml,salvar e reiniciar o servidor da o mesmo erro (NÃO MUDA EXATAMENTE NADA) , ou seja o tomcat não está enxergando essas tags (Acho).

<servlet>
  	<servlet-name>AdicionaContato</servlet-name>
  	<servlet-class>servlet.AdicionaContatoServlet</servlet-class>
  </servlet>	
  <servlet-mapping>
  	<servlet-name>AdicionaContato</servlet-name>
  	<url-pattern>/adicionaContato</url-pattern>
  </servlet-mapping>

se eu alterar a tag servlet-class pra uma classe que nao existe no projeto ele acusa o erro dizendo que não encontrou a classe, quando eu criou um mapeamento pra uma classe correta ele diz que tal mapeamento não existe…

alguma luz ? :T

pra completar acabei de testar o outro projeto que usa STRUTS 2 , mas em vez de fazer o mapeamento no web.xml usando servlet é feito por annotation usando os action e funciona PERFEITAMENTE…

se alguém puder ajudar , pois eu só sossego quando resolvo alguma coisa , rs!!