2016-06-04 6 views
2

Ich versuche, einen Client für REST-Webdienste zu schreiben; Ich verwende den Tomcat-Anwendungsserver. Alle folgenden Pakete werden nicht unterstützt.Wie schreibe ich einen Client für REST Web Services?

Ich bin neu in REST, welche Abhängigkeit sollte ich pom.xml für diese Bibliotheken hinzufügen?

package com.abc.client; 

import javax.ws.rs.client.Client; 
import javax.ws.rs.client.ClientBuilder; 
import javax.ws.rs.client.WebTarget; 
import javax.ws.rs.core.MediaType; 

public class JaxRSClient { 
    public static void main(String args[]){ 
     // Creating the client 
     Client client = ClientBuilder.newClient(); 
     WebTarget target = client.target(
      "http://localhost:8080/jersey/RestWebService/HelloREST/" 
     ); 
     System.out.println(target.request(MediaType.TEXT_PLAIN).get(String.class)); 
    } 
} 
+0

Was mit HttpURLConnection falsch? –

+1

Mögliches Duplikat von [Wie wird eine HTTP-Anfrage in Java gesendet?] (Http://stackoverflow.com/questions/1359689/how-to-send-http-request-in-java) –

+0

check http://mvnrepository.com /artifact/javax.ws.rs/javax.ws.rs-api –

Antwort

3

Sie haben alle diese Klassen in javax.ws.rs-api

<dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>javax.ws.rs-api</artifactId> 
    <version>2.0.1</version> 
</dependency> 

Aber das ist nur die API, müssen Sie Ihre JAX-RS Implementierung wählen wie Jersey (Sie können die vollständige Liste der vorhandenen Implementierungen bekommen here).

Wenn Sie Jersey verwenden möchten, müssen Sie nur die nächste Abhängigkeit zu Ihrer pom-Datei hinzuzufügen, in der Tat javax.ws.rs-api ist bereits eine Abhängigkeit von jersey-client

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>2.23</version> 
</dependency> 
+0

@Nicholas - Wenn ich Tomcat-Anwendungsserver verwende, funktioniert die Trikot-Client-Abhängigkeit wie oben erwähnt? – Ridhi

+0

@Ridhi Wenn Sie Tomcat verwenden, können Sie es auf localhost mit dem Trikey-Client-Code überprüfen. Ich habe Ihren Code mit den Maven-Abhängigkeiten, die in dieser Antwort gezeigt werden, erfolgreich kompiliert und ausgeführt und versucht, eine Verbindung wie erwartet herzustellen. – mjn

+0

Ja, Sir, aber es wird nicht zur Verfügung gestellt, da Tomcat nicht wirklich ein Anwendungsserver ist, sondern eher eine Servlet-Engine, Sie müssen die Bibliotheken in tomcat/lib setzen –