web-dev-qa-db-fra.com

jersey/Tomcat Description Le serveur d'origine n'a pas trouvé de représentation actuelle de la ressource cible.

J'ai configuré le maillot (avec le serveur Tomcat) conformément aux détails décrits jusqu'à l'étape 6.3 ici: http://www.vogella.com/tutorials/REST/article.html#jerseyprojectsetup

Ci-dessous mon fichier web.xml, la seule différence est que le chemin/nom du package pour le jersey.config.server.provider.packages

les instructions a;

<param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.vogella.jersey.first</param-value>

parce que com.vogella.jersey.first est leur nom de paquet, alors que j'ai choisi de pointer le mien vers mon paquet par défaut (jerseytest)

mais c'est mon 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>jerseytest</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>jerseytest</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>

lorsque je lance l'application sur le serveur Tomcat, je continue à recevoir: 

Statut HTTP 404 - Introuvable

Type de rapport d'état

Message /jerseytest/

Description Le serveur d'origine n'a pas trouvé de représentation actuelle pour la ressource cible ou ne veut pas divulguer celle qui existe.

Apache Tomcat/8.5.23

et quand je pointe le navigateur vers le point final mentionné dans le tutoriel: http://localhost:8080/com.vogella.jersey.first/rest/hello

Je reçois une erreur introuvable:

Statut HTTP 404 - Introuvable

Type de rapport d'état

Message Not Found

Description Le serveur d'origine n'a pas trouvé de représentation actuelle pour la ressource cible ou ne veut pas divulguer celle qui existe.

Apache Tomcat/8.5.23

Quand je pointe le navigateur directement vers http: // localhost: 8080/rest/hello

Je reçois:

Statut HTTP 404 - Introuvable

Type de rapport d'état

Message /rest/hello

Description Le serveur d'origine n'a pas trouvé de représentation actuelle pour la ressource cible ou ne veut pas divulguer celle qui existe.

Apache Tomcat/8.5.23

Ma classe Java est identique à l'exemple des instructions, sauf que la mienne est dans le package par défaut:

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> ";
  }

}
4
Tlink

J'ai lutté avec ce problème plusieurs fois.

La solution que j'utilise actuellement est l'application Web (ou le dossier dans lequel vous avez conservé les vues, comme jsp) est en cours de déploiement.

Pour ce faire, cliquez avec le bouton droit de la souris sur project > Build Path > Configure Build path > Deployment Assembly > Add(right hand side) > Folder > (add your jsp folder. In default case it is src/main/webapp).

5
tadtab

Chaque méthode doit spécifier le chemin

comme ça :

 @GET  
 @Path("testOne")  
 @Produces(MediaType.TEXT_HTML)
    

0
sunil