webentwicklung-frage-antwort-db.com.de

jersey/Tomcat Beschreibung Der Origin-Server hat keine aktuelle Darstellung für die Zielressource gefunden

Ich habe Jersey (mit Tomcat-Server) gemäß den bis zu Schritt 6.3 beschriebenen Details konfiguriert: http://www.vogella.com/tutorials/REST/article.html#jerseyprojectsetup

Unten ist meine web.xml-Datei. Der einzige Unterschied besteht darin, dass der Pfad/Paketname für den jersey.config.server.provider.packages

die Anweisungen hat;

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

weil com.vogella.jersey.first ihr Paketname ist, während ich mich auf mein Standardpaket (jerseytest) wähle

aber das ist meine 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>

wenn ich die Anwendung auf dem Tomcat-Server starte, erhalte ich Folgendes: 

HTTP-Status 404 - nicht gefunden

Statusbericht schreiben

Message /jerseytest/

Beschreibung Der Origin-Server hat keine aktuelle Darstellung gefunden für die Zielressource oder ist nicht bereit zu zeigen, dass eine vorhanden ist.

Apache Tomcat/8.5.23

und wenn ich den Browser auf den im Tutorial genannten Endpunkt zeige: http://localhost:8080/com.vogella.jersey.first/rest/hello

Ich erhalte einen Fehler, der nicht gefunden wurde:

HTTP-Status 404 - nicht gefunden

Statusbericht schreiben

Message Not Found

Beschreibung Der Origin-Server hat keine aktuelle Darstellung gefunden für die Zielressource oder ist nicht bereit zu zeigen, dass eine vorhanden ist.

Apache Tomcat/8.5.23

Wenn ich den Browser direkt auf http: // localhost: 8080/rest/hello verweise

Ich bekomme:

HTTP-Status 404 - nicht gefunden

Statusbericht schreiben

Message /rest/hello

Beschreibung Der Origin-Server hat keine aktuelle Darstellung gefunden für die Zielressource oder ist nicht bereit zu zeigen, dass eine vorhanden ist.

Apache Tomcat/8.5.23

Meine Java-Klasse ist identisch mit dem Beispiel in den Anweisungen, nur dass meine im Standardpaket enthalten ist:

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

Ich habe viele Male mit diesem Problem zu kämpfen.

Die Lösung, die ich derzeit verwende, ist, ob die Webapp (oder der Ordner, in dem Sie die Ansichten wie "Jsp" gespeichert haben) sich im Bereitstellungsassembly befindet.

Klicken Sie mit der rechten Maustaste auf 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

Jede Methode muss den Pfad angeben

so was :

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

0
sunil