2012-01-10 4 views

Répondre

3

Vous pouvez voir à l'intérieur de la poste comment nous pouvons créer un service Web JX-RS qui produit un tampon de protocole Google en réponse. Le code source est disponible at my blog

ce que je fais est de convertir l'objet tampon de protocole en tableau d'octets de côté serveur et l'envoi est un tableau via le service: code service est ci-dessous, objet peuplant et de le mettre en réponse.

UserDTO.User user = UserDTO.User.newBuilder(). //protocol buffer object 
      setSessionId(id). 
      setName("l070020"). 
      build(); 
return Response.ok(user.toByteArray(),MediaType.APPLICATION_OCTET_STREAM).status(200).build(); 

objet de mémoire tampon de protocole a la capacité d'analyser et remplir remplir l'objet de mémoire tampon de protocole sous forme de flux. Donc j'utilise par flux pour la communication de données. côté client, je fais connexion au service Web

HttpGet request = new HttpGet("http://localhost:8080/maven.work/service/mainServices/get_user"); 
request.addHeader("accept","application/octet-stream"); 
HttpResponse response = httpClient.execute(request); 

tampon Protocole a construit dans la méthode pour analyser flux, en dessous je suis flux d'analyse syntaxique de la réponse

User user = User.parseFrom(response.getEntity().getContent()); 

De même, vous pouvez envoyer le tampon de protocole objet sous la forme de tableau de byte au serveur et au serveur peut l'obtenir à partir du flux de requête de servlet HTTP et l'analyser comme le fait le client.

+1

Le lien solitaire est [considéré comme une mauvaise réponse] (http://stackoverflow.com/faq#deletion) car il n'a aucune signification en lui-même et la ressource cible n'est pas garantie d'être active dans le futur. [Il serait préférable] (http://meta.stackexchange.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. – j0k

+1

En plus de ce que j0k noté ci-dessus, s'il vous plaît assurez-vous de lire attentivement la [FAQ sur l'auto-promotion] (http://stackoverflow.com/faq#promotion) attentivement. Notez également qu'il est * obligatoire * que vous publiez une clause de non-responsabilité chaque fois que vous créez un lien vers votre propre site/produit. –

+0

Sur le lien ci-dessus j'ai écrit la solution complète et le code, mais si vous les gars pensent que poste n'est pas garanti d'être vivant, je vais mettre les lignes de code ici et en mettant le lien pour référence. Merci de me guider. Je suis nouveau chez stackoverflow. –