2017-05-17 12 views
0

Ich bin mit Maven/Tomcat/Java in Eclipse rumalbern. Ich habe dieses Java-Servlet gemacht, aber wenn ich zu localhost gehe: xxxx/myapp/rest bekomme ich keine Antwort auf meine GET-Anfrage, ich bekomme ein 404. Ich dachte, wenn ich den @path zu/Ruhe stelle kann ich senden eine GET-Anfrage an die URL, aber es funktioniert nicht. Weiß jemand, was das Problem ist? Vielen Dank!Tomcat Java Servlet Pfad

+0

Wenn Sie sagen, es funktioniert nicht, was meinst du? Erhalten Sie 200 OK, aber keine Antwort, Anfrage fehlgeschlagen am Server oder die Anfrage wird nicht vom Server empfangen? – manu

+0

Ich bekomme einen 404 Fehler. @manu –

Antwort

2

Dies ist kein Servlet, es ist ein JAX-RS Ressource. Dies funktioniert in Tomcat nicht "out of the box". Sie müssen daher eine JAX-RS-Implementierung implementieren (wie Jersey).

Ein Servlet würde wie folgt aussehen:

@WebServlet(name = "WorldServlet", urlPatterns = {"/rest"}) 
public class WorldServlet extends HttpServlet { 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("application/json"); 
     try (PrintWriter out = response.getWriter()) { 
      ... // your code 
      out.println(array.toString()); 
     } 
    } 
} 

Also, was Sie wirklich brauchen nur einen JAX-RS-Anbieter zu suchen, um zu installieren. Wenn Sie das tun, sind die Chancen hoch, dass es STILL bei /rest nicht sein wird, da die JAX-RS-Implementierung normalerweise auf einem Pfad verwurzelt ist, so dass Sie mit etwas wie /resources/rest enden können.

Das ist natürlich alles konfigurierbar.

-1

Dies kann passieren, weil Ihr Servlet nicht in der Lage ist, Ihr POJO in eine entsprechende HTTP-Antwort umzuwandeln.

Statt return array.toString();
versuchen return Response.status(200).entity(array.toString()).build();

+0

Der Methodenstatus (200) ist für den Typ Antwort nicht definiert. –

+0

** Was ** POJO? Die Methode gibt einen 'String' zurück, der JSON enthält. – EJP

+0

Stellen Sie sicher, dass Sie javax.ws.rs.core.Response verwenden @SomeName verweisen dieses Blog https://www.mkyong.com/webservices/jax-rs/jax-rs-path-uri-matching-example/ – manu

Verwandte Themen