Exercício 11.6 da apostila FJ-21 da Caelum - Servlet não funciona [RESOLVIDO]

3 respostas
H

Olá!

Estou tentando fazer o exercício 11.6 da apostila FJ-21 da Caelum, mas não está funcionando. O erro apresentado pelo servidor WildFly 10 é 404 - Not Found. Notei que, quando clico em “Start” no servidor, ocorre um erro, e a causa apresentada é “Servlet OlaMundoController of type class br.com.gt.tarefas.controller.OlaMundoController does not implement javax.servlet.Servlet”.

Se eu implementar a interface Servlet na minha Servlet, funciona. Mas entendo que essa não seja a solução.
Alguém poderia me ajudar, por favor?

Minha aplicação está estruturada da seguinte forma:

Meu arquivo web.xml:

Meu arquivo spring-context.xml:

Minha Servlet:

3 Respostas

drsmachado

Então remova as linhas que indicam ao web.xml que a classe OlaMundoController é uma servlet…

H

Muito obrigado pela ajuda. Agora funcionou.

drsmachado

Vamos lá, explicando.
Quando você está utilizando puramente servlets, existem duas formas de fazer com que elas funcionem: via annotation ou via configuração no web.xml (esta última era mais utilizada em versões anteriores ao java 7). Esta anotação ou configuração no web.xml informaria ao container ou application server que um determinado recurso (a classe) deveria ser acionada quando um determinado padrão de url fosse invocado.
Independente de qual versão ou do modo como está definindo suas servlets, você ainda precisaria implementar javax.servlet.Servlet, isso forçaria a tua classe a implementar um dos métodos que representam os verbos das requisições HTTP (doGet, doPost, doPut, doDelete).
A partir do momento que você usa um framework como Spring, isso muda de figura. A configuração vai ser focada no que o framework necessita e o funcionamento das coisas ocorre a partir destas configurações.
Dependendo do que for, pode até funcionar, mas, na maioria dos casos, configuração demais acaba sendo ruim.
Enfim, é isso.

Criado 19 de janeiro de 2017
Ultima resposta 20 de jan. de 2017
Respostas 3
Participantes 2