Numéro d'appel du Service Web RESTFul de Client à l'aide de Jersey
Je suis en train d'apprendre RESTFul web services à l'aide de Jersey et suivants cet exemple. J'ai créé un exemple de service qui est accessible à:
http://localhost:8080/de.vogella.jersey.first/rest/hello.
J'ai créé un client qui appelle ce service, mais quand je lance ce client, je reçois une exception comme suit:
GET http://localhost:8080/de.vogella.jersey.first/rest/hello
returned a response status of 404 Not Found Exception in thread "main"
com.sun.jersey.api.client.UniformInterfaceException:
GET http://localhost:8080/de.vogella.jersey.first/rest/hello
returned a response status of 404 Not Found
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:686)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:507)
at de.vogella.jersey.first.client.Test.main(Test.java:23)
Classe de Service est
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> ";
}
}
Code Client:
public class Test {
public static void main(String[] args) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_PLAIN).get(ClientResponse.class).toString());
System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_XML).get(String.class));
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8080/de.vogella.jersey.first").build();
}
}
La partie étrange est, je peux obtenir le bon résultat si j'ai frappé
http://localhost:8080/de.vogella.jersey.first/rest/hello
à partir du navigateur. Toute aide pour résoudre ce problème est apprécié.
Grâce
Quel est le problème? Ce qui ne fonctionne pas?
Le problème est que le client n'est pas en mesure d'accéder à l'url qui fonctionne bien dans le navigateur. J'en ai vraiment besoin pour obtenir le travail aujourd'hui. S'il vous plaît aider.
Ce que les en-têtes HTTP sont que vous envoyez à partir de votre client?
Le problème est que le client n'est pas en mesure d'accéder à l'url qui fonctionne bien dans le navigateur. J'en ai vraiment besoin pour obtenir le travail aujourd'hui. S'il vous plaît aider.
Ce que les en-têtes HTTP sont que vous envoyez à partir de votre client?
OriginalL'auteur Preeti | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
Selon vos besoins dans votre application de service vous n'avez pas mentionné le "Chemin" annotation avant la création de la classe, Par exemple:
C'est uniquement le problème dans votre application de service.
OriginalL'auteur Veerabhadra Rao Balla
URL: de.vogella.jersey.première/repos/bonjour
1) assurez-vous que vous avez donné Servlet mappages pour analyser le "reste" à partir de l'URL
2) Ajouter
@Path("hello")
déclaration de la méthode ci-dessus.jersey-serlvet
ne va pas probablement travailler 😉OriginalL'auteur Nitul
je n'obtiens pas de problème dans cet exemple, si vous souhaitez exécuter l'exemple d'une autre manière que de passer ensemble de l'url qui vous passe dans le navigateur en fonction suivante vous obtenez le résultat de votre classe principale.
OriginalL'auteur Yogesh Prajapati
Vous devez utiliser:
au lieu de
Des fins de test.
OriginalL'auteur Justas