Java Maillot de METTRE la Méthode et de travail Client
Je développe une Application Web Dynamique avec Eclipse. J'ai e de travail MySQL-Base de données qui est connecté sur une classe appelée "Data Access Object' (=DAO) qui fonctionne avec JDBC. Je veux créer des entrées dans cette base de données. Les fonctions sont prêts. Avec prêt je veux dire, testé et OK. Sur la même application que j'ai implémenté en Java Jersey Reposant WebService. Il fonctionne bien, je peux appeler le service et il retourne mon information désirée. Mais maintenant à ma question:
Comment puis-je envoyer une Chaîne de caractères contenant le XML? La Chaîne doit être analysé dans le WebMethod pour construire et exécuter la requête.
Mon WebService se présente comme suit:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
@Path("/input")
public class Input {
//DAO instance to have connection to the database.
//Not used yet.
//private DAO dao = new DAO();
@PUT
@Consumes(MediaType.TEXT_XML)
@Path("/result")
public void putIntoDAO(InputStream xml) {
String line = "";
StringBuilder sb = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(xml));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(sb.toString());
}
}
Comme vous le voyez j'ai essayé d'imprimer le Flux entrant de la console.
Je le répète, les choses les plus importantes:
- Je sais comment parser XML.
- Je sais que mon DAO fonctionne correctement.
- Je sais que mon WebService fonctionne aussi bien.
Ce que je voudrais savoir:
- Comment puis-je envoyer un XML-Corde à mon WebService?
- Comment puis-je accéder à cette Chaîne dans ma méthode PUT?
Vous remercie de votre attention et essayer de m'aider. J'apprécie même de tous les essayer.
Salutations
L.
OriginalL'auteur silenum | 2015-01-20
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement le code de la méthode pour prendre un argument de type
String
et Jersey sera cette carte de la nouvelle demande XML, donc:Travaillent, avec la Chaîne de caractères contenant la totalité du corps de la requête.
Cela dépend de ce que vous utilisez pour envoyer la demande pour le service, qui pourrait être n'importe quoi qui communique via le protocole HTTP. Je vais supposer que vous êtes à l'aide de Java et coller avec Jersey, donc une option que vous pouvez utiliser le Maillot Client de la manière suivante:
Voir le Maillot de la documentation du Client pour plus d'.
OriginalL'auteur Ross Taylor-Turner
La réponse Ross Turner posté est tout à fait correcte et de travail. Voici une option à l'aide de Apache HttpComponents.
Le serveur imprime:
OriginalL'auteur silenum