2011-02-16 22 views
11

Estoy tratando de encontrar una forma de escribir una aplicación Java que pueda comunicarse con un servicio json-rpc (el servicio es un servidor twisted de python).Cliente JSON-RPC en Java

Sin embargo, no he podido encontrar una biblioteca decente con algunos buenos ejemplos (he buscado en Google y jugueteado durante alrededor de 6 horas).

Entonces, ¿hay alguna biblioteca para esto en Java, o hay un camino de nivel inferior más engorroso.

+0

No estoy seguro de por qué esto se marcó como fuera de tema; está etiquetado 'java' y 'json-rpc' y es una pregunta legítima. – user1932890

Respuesta

3

Puedes echar un vistazo a las clases Spring y RestTemplate (aquí hay una buena introducción: http://blog.springsource.com/2009/03/27/rest-in-spring-3-resttemplate/).

Como alternativa, puede usar Commons HttpClient para publicar/obtener su carga útil Json en el servicio.

PostMethod post = new PostMethod("http://myservice.com"); 
// add the payload to the post object 
HttpClient client = new HttpClient(); 
int status = client.executeMethod(post); 
String response = post.getResponseBodyAsString(); 
+0

No veo cómo se aceptó esto como una respuesta, ya que se refiere a Spring RestTemplate. JSON-RPC es, como su nombre indica, un protocolo RPC, y REST es lo opuesto a RPC (el Modelo de madurez Richardson se refiere a RPC como Nivel 0, también conocido como "Pantano de POX"). Es un misterio para mí cómo RestTemplate podría usarse para crear llamadas JSON-RPC, que ni siquiera podría ejecutarse a través de HTTP, sino a través de websockets o sockets TCP simples ... – user1932890

0

mira esto: https://code.google.com/p/json-rpc-client/

Lo anterior es un cliente JSON RPC en Java que puede hablar con un servicio JSON RPC.

+1

Esto no tiene documentación, y no está inmediatamente claro cómo usarlo desde navegando por la fuente. –

+0

Busca en el origen de Client.java en el json-rpc-client e ir desde allí. –

+0

json-rpc-client parece bastante viejo. No es compatible con JSON-RPC 2.0, ¿verdad? ¿Conoces una biblioteca cliente que sí lo tenga? – user1660256

Cuestiones relacionadas