Exécuter REST avec Java (JAX-RS) avec Jersey sur IntelliJ / Tomcat


J'essaie de faire le tutoriel suivant dans IntelliJ sur OSX:

Http://www.vogella.com/tutorials/REST/article.html

Lors de l'exécution du code dans Eclipse, tout fonctionne bien. Mais l'exécution du code dans IntelliJ fournit 404s pour le même URI.

Le programme doit s'exécuter sur un serveur Apache Tomcat 8.0.20.

J'ai fait exactement ce qui a été écrit dans le tutoriel mais je ne peux pas comprendre pourquoi cela ne fonctionnera pas dans IntelliJ. J'ai cherché pendant des jours maintenant, trouver un solution.

Il semble que quelque chose avec le déploiement soit incorrect, car l'index.jsp fonctionne bien.

J'espère que quelqu'un peut m'aider.

Code du programme:

Classe Bonjour:

package com.vogella.jersey.first;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

// Plain old Java Object it does not extend as class or implements 
// an interface

// The class registers its methods for the HTTP GET request using the @GET annotation. 
// Using the @Produces annotation, it defines that it can deliver several MIME types,
// text, XML and HTML. 

// The browser requests per default the HTML MIME type.

//Sets the path to base URL + /hello
@Path("/hello")
public class Hello {

    // This method is called if TEXT_PLAIN is request
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayPlainTextHello() {
        return "Hello Jersey";
    }

    // This method is called if XML is request
    @GET
    @Produces(MediaType.TEXT_XML)
    public String sayXMLHello() {
        return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
    }

    // This method is called if HTML is request
    @GET
    @Produces(MediaType.TEXT_HTML)
        public String sayHtmlHello() {
            return "<html> " + "<title>" + "Hello Jersey" + "</title>"
                    + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
        }

}

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" 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>com.vogella.jersey.first</display-name>
    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <!-- Register resources and providers under com.vogella.jersey.first package. -->
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.vogella.jersey.first</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app> 

Structure du projet: (Impossible de poster des photos à cause de la faible réputation, Désolé je suis nouveau)

  • reste
    • .idée
    • lib
      • javax.ws.rs-api-2.0.jar
      • jersey-client.pot
      • jersey-commun.pot
      • jersey-conteneur-servlet.pot
      • jersey-conteneur-servlet-noyau.pot
      • jersey-serveur.pot
    • sortie
    • src
      • com.vogella.Jersey.premier
        • Bonjour
    • toile
      • WEB-INF
        • toile.xml
      • index.jsp
  • reste.iml
Author: Philip, 2015-03-21

1 answers

Correction du problème avec ce code.

Github.com/silvae86

 1
Author: Philip, 2015-03-22 10:56:19