Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Web Services
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/12/2012, 17h04   #1
sebac
Membre habitué
 
Inscription : avril 2007
Messages : 499
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 499
Points : 114
Points : 114
Par défaut Appel d'un Service REST avec paramètre String

Bonjour j'essaye de créer un service rest avec en paramètre une String ayant le contenu d'un fichier
Code :
1
2
3
4
5
6
@PUT
    @Path("sayPlainTextHello")
    @Produces(MediaType.TEXT_PLAIN)
    public String sayPlainTextHello(@QueryParam("fileContent") String contentOfFile) {
        return contentOfFile;
    }
Ensuite je me suis fait un petit client
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
String fileContent = "-----BEGIN CERTIFICATE-----\n"
                + "MIIEkTCCA3mgAwIBAgICQOUwDQYJKoZIhvcNAQELBQAwgYYxITAfBgNVBAoTGERD\n"
                + "Mi5TTVBURS5ET1JFTUlMQUJTLkNPTTEaMBgGA1UECxMRREMuRE9SRU1JTEFCUy5D\n"
                + "T00xHjAcBgNVBAMTFS5EQy5ET0xQSElOLkRDMi5TTVBURTElMCMGA1UELhMcdlVs\n"
                + "Zy8wVGwveTVyWEVGYlNiN3hGNzZGLzJVPTAeFw0wNzAxMDEwMDAwMDBaFw0yNTEy\n"
                + "MzEyMzU5NTlaMIGcMSEwHwYDVQQKExhEQzIuU01QVEUuRE9SRU1JTEFCUy5DT00x\n"
                + "GjAYBgNVBAsTEURDLkRPUkVNSUxBQlMuQ09NMTQwMgYDVQQDEytMRSBTUEIgTUQg";
 
        ClientConfig config = new DefaultClientConfig();
        Client client = Client.create(config);
        WebResource resource = client.resource(monServerUrl);
 
 
        System.out.println(resource.path("sayPlainTextHello").queryParam("fileContent", fileContent).accept(MediaType.TEXT_PLAIN).put(String.class));
ça se passe bien uniquement en fonction de la taille du contenu du fichier que je mets dans la String si je met un contenu trop grand j'ai une erreur
Code :
com.sun.jersey.api.client.UniformInterfaceException: PUT http://serverUrl:8080/sayPlainTextHello?fileContent=-----BEGIN+CERTIFICATE-----%0AMIIEkTCCA3mgAwIBAgICQOUwDQYJKoZIhvcNAQE+...line is too long, please switch to wrapped mode too see whole line...
Je sais que je peux utiliser des InputStream ou du File en paramètre mais pour x raison il me faut le contenu du fichier dans une String, y'a t'il une façon de le faire? sans que j'ai une erreur.
Merci
sebac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 15h38   #2
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
Il des manière plus propre d'envoyer des web service comme par exemple :
http://jab.developpez.com/tutoriels/dotnet/mtom/
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2012, 22h57   #3
Desboys
Membre éclairé
 
Homme Sébastien Desbois
Ingénieur développement logiciels
Inscription : février 2005
Messages : 227
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Desbois
Âge : 30
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2005
Messages : 227
Points : 381
Points : 381
Bonjour,

les URI qui peuvent être transmises à un serveur sont limitées en taille.

Je te suggère de regarder du côté des @FormParam plutôt que @QueryParam pour faire transiter ton contenu vers ton service REST.

Cordialement,
Sébastien
Desboys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h45.


 
 
 
 
Partenaires

Hébergement Web