Wildfly - Minha aplicação não executa

Oi, pessoal…quebrando a cabeça há vários dias…

Tenho meu ambiente de desenvolvimento com o Eclipse + Wildfly 8.2.1. Importei meu projeto .war, consigo startar o server e ele faz o deploy sem erros. O problema é quando eu vou executar login, ele retorna : “HTTP method POST is not supported by this URL” E não alcança o servlet controlador. Fiz teste mudando o método p/GET e a mensagem continua a mesma. Como posso resolver isso ?

Como está a servlet?

package br.com.sms.sisprot.servlets;

import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.sms.sisprot.controlador.InterfaceSisprot;

/**

  • Servlet implementation class ServletControlador1
    */
    @WebServlet("/ServletControlador1.do")

public class ServletControlador1 extends HttpServlet implements InterfaceSisprot{

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException{

      //processa(request,response);
	   doPost(request,response);
   }

   protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException{
	   
      //processa(request,response);
	   doGet(request,response);
   }

   protected void processa(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException{
      System.out.println("ENTROU NO SERVLET");
      try{
         String nomeClasse = "br.com.sms.sisprot.controlador." + request.getParameter("classe");
         
         Class classe = Class.forName(nomeClasse);
         InterfaceSisprot inteligencia = (InterfaceSisprot) classe.newInstance();
         String retorno = inteligencia.execute(request,response);

         request.getRequestDispatcher(retorno).forward(request,response);
         //request.getRequestDispatcher(retorno).include(request, response);
        
      } catch(ClassNotFoundException ex){
        Logger.getLogger(ServletControlador1.class.getName()).log(Level.SEVERE, null, ex);
      } catch(InstantiationException ex){
        Logger.getLogger(ServletControlador1.class.getName()).log(Level.SEVERE, null, ex);
      } catch(IllegalAccessException ex){
        Logger.getLogger(ServletControlador1.class.getName()).log(Level.SEVERE, null, ex);
      }
   }

@Override
public String execute(HttpServletRequest request,
		HttpServletResponse response) {
	// TODO Auto-generated method stub
	String path = request.getParameter("classe");
	return path;
}

}

Detalhe: Implementei um modulo abaixo de modules…o .xml dele está assim :

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.myjars.jfreechart">
   <resources>  
       <resource-root path="br.com.sms.sisprot.servlets.ConectarBanco.java"/>
       <resource-root path="br.com.sms.sisprot.servlets.ServletControlador1.java"/>
	   <resource-root path="br.com.sms.sisprot.servlets.AcessoSistema.java"/>
       <resource-root path="br.com.sms.sisprot.servlets.TesteServlet1.java"/>		   
       <resource-root path="br.com.sms.sisprot.controlador.Filtros.java"/>  
   </resources>  

A servlet não está declarada no .xml da aplicação…

A partir da especificação 3.0 das servlets a declaração no web.xml passou a ser substituída pela anotação @WebServlet.
O que me é estranho e´o fato de que, mesmo tendo o método doPost, este método não ser reconhecido.
Qual é o form que está requisitando o post para a servlet?

<form name="form1" method="POST" action="ServletControlador2">
    <fieldset>
        <br>
        <table width="180" border="1" align="center" cellpadding="0" cellspacing="4">
           <tr>
           <td width="55">Usuário:</td>
           <td width="122"><input name="login" type="text" id="login"></td>
           </tr>
           <tr>
           <td height="18">Senha:</td>
           <td><input name="senha" type="password" id="senha"></td>
           </tr>
           <input name="classe" type="hidden" id="classe" value="AcessoSistema">
           <tr>
           <td colspan="2"><div align="center">
           <input type="submit" name="Submit" onclick="return validarCampos()" value="ENVIAR">
           <td>
           </tr>
           </table>
       </fieldset>
   </form>

o action dele é ServletControlador1 mesmo…troquei só p fz um teste

Você postou o código da servlet errada. Não?

    <form name="form1" method="POST" action="ServletControlador1">

Sim…meu código está como esta linha acima, conforme comentei…

Sendo bem sincero, o que eu lembro da anotação @WebServlet é que o parâmetro definido dentro dos parênteses, indicaria qual o “apelido” da servlet (no xml, seria aquele url-pattern.
Pois bem, se você tem uma servlet com a anotação

@WebServlet("/ServletControlador1.do")

entendo que o form deve apontar para

<form name="form1" method="POST" action="ServletControlador1.do">

Senão, não consegue achar mesmo. Lógico que o erro, no caso de você passar uma action inexistente seria o 404.
O que pode estar ocorrendo é que o arquivo de modules que você criou pode estar interferindo de alguma forma (eu nunca utilizei isso, então, não sei como o JBoss vai lidar com ele).

Por isso criei a ServletControlador2, e está executando…

Se criou a ServletControlador2 e a mapeou como

@WebServlet("/ServletControlador2")

Teu form deve apontar para a action

<form name="form1" method="POST" action="ServletControlador2">

Funcionou, amigo…muito grato pela sua atenção e auxílio. Eu estava rodando JBoss AS7.1, e, como fiz atualização do meu Java p versão 8, instalei o Wildfly…me ambientando ainda…