2017-09-10 4 views
-1

Gestern habe ich meine erste Ruhe-API erstellt.HTTP-Status 404 - Nicht gefunden Fehler in restapi Antwort

Hier ist mein Code

package RestClient; 

//import javax.servlet.annotation.WebServlet; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/RestClient") 
public class Restwebclient { 

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

} 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> 
    <display-name>Webservice</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

<servlet> 
<servlet-name>JAVA WS</servlet-name> 
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 

<init-param> 
    <param-name>jersey.config.server.provider.packages</param-name> 
    <param-value>RestClient</param-value> 
</init-param> 
<load-on-startup>1</load-on-startup> 
</servlet> 


<servlet-mapping> 
    <servlet-name>JAVA WS</servlet-name> 
    <url-pattern>/Test</url-pattern> 
</servlet-mapping> 

</web-app> 

Wenn ich laufen, Apache-Server in Eclipse fein beginnt. Aber wenn ich die URL auf dem lokalen Host öffne, erwarte ich, dass meine Daten nicht kommen. Es zeigt Fehler wie im Screenshot unten.

https://prnt.sc/gjatoq

gleiche Fehler mit dieser URLs als auch

http://localhost:8080/Webservice/RestClient 
http://localhost:8080/Webservice/Restwebclient 
http://localhost:8080/Webservice/Restwebclient/Test 
http://localhost:8080/Webservice/Test 

Ich habe jede einzelne Sache, versuchen, auch die Position geschaltet und ausgewählt „verwenden Tomcat Installation“ als auch Option. Ich stecke wirklich fest.

Alles scheint in Ordnung zu laufen außer den Ausgabedaten auf der lokalen Host-URL.

Gibt es jemanden, der mit mir noch etwas teilen könnte, damit es funktioniert?

+0

das Eclipse-Projekt, heißt es "Webservice"? –

+0

@ SharonBenAsher..yes, Sein Webservice .. !! – LearnJava

+1

Überprüfen Sie den Kontextstamm. Es ist unter "Web Project Settings" in den Projekteinstellungen –

Antwort

0

wenn Sie @Produces(MediaType.TEXT_XML) schreiben bedeutet dies, dass die reponse wird einen HTTP-Header Content-Type und sein Wert wird text/xml

jedoch sein benannt sind, die Anforderung von dem Client in der Lage sein muss, diese Antwort zu akzeptieren. Der Client muss einen Accept HTTP-Header mit dem gleichen Wert senden (kann auch application/xml sein), andernfalls kann der Webserver entscheiden, die Antwort nicht zu senden, oder der Client kann entscheiden, die Antwort zu verwerfen.

Chrome (oder jeder andere Browser) ist wahrscheinlich nicht das beste Werkzeug, um Ruhe-API-Anrufe (oder API im Allgemeinen) zu testen. Nicht nur wegen HTTP-Headern, sondern auch um andere HTTP-Methoden als GET verwenden zu können. Sie können Chrome Web Store nach Mods durchsuchen, die eine Änderung von http-Headern ermöglichen, oder ein geeignetes HTTP-Client-Tool verwenden

Ich verwende Fiddler. Es verfügt über eine Fülle von Funktionen, einschließlich der vollständigen Kontrolle über den Inhalt der HTTP-Anfrage.

+1

Im Falle eines falschen MediaType sollte die Antwort etwa 405 und nicht 404 sein. Recht? Ich würde aber auch einen Rest-Client wie Postbote empfehlen. –

+0

@SharonBenAsher, naja, was immer du gesagt hast, ergibt für mich einen Sinn. Aber wie du gesagt hast, sollte der Client auch die Möglichkeit haben, XML-Reaktionen zu akzeptieren. Wie kann ich das machen? Irgendein Vorschlag ... weil es meine allererste Entwicklung ist – LearnJava

Verwandte Themen