2 votes

Serveur Tomcat non disponible depuis JEE7

J'ai créé un projet gradle webapp dans IntelliJ.

J'ai configuré Tomcat 8.5.6 pour exécuter le projet.

Dans le dossier webapp/WEB_INF/web.xml J'ai défini une servlet

<servlet-mapping>
<servlet>
    <servlet-name>RestServlet</servlet-name>
    <servlet-class>com.anatoli.customer.service.Home</servlet-class>
</servlet>
</servlet-mapping>

@ApplicationPath("rest")
public class Home extends Application {

}

Et j'ai une simple classe java pour montrer quelque chose

@Stateless
@Named
@Path("test")
public class Customer {

    @GET @Path("text")
    @Produces("text/plain")
    public String getText() {
        return "Hello World";
    }
}

Lorsque je lance le projet, et que j'essaie d'appeler http://localhost:8080/rest/test/text -> Je reçois 404

Mais si je cours http://localhost:8080 Ensuite, je peux voir l'index.jsp qui est dans le dossier webapp -> tomcat est en marche.

Je dois utiliser les annotations dans mon projet JEE7.

3voto

Svetlin Zarev Points 1429

Tomcat est un conteneur web et non un serveur d'application.

Donc votre :

  • @Stateless ne fait rien
  • @Named ne fait rien non plus
  • @ApplicationPath("rest") / @Path ne fait rien à moins que vous n'ayez fourni une implémentation de JAX-RS, soit dans votre application, soit dans le fichier catalina-home/lib (mais étant donné votre problème - vous ne l'avez pas fait)

Avez-vous envisagé d'essayer Apache TomEE ? Il s'agit de Tomcat + JavaEE spec impl. et devrait donc mieux vous convenir.

-1voto

Raman Points 222

Allez à RUN->EDIT CONFIGURATION d'Intellij et ajoutez LOCAL TOMCAT et deployment war dans la section deployment pour exécuter le projet localement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X