2012-08-05 24 views
7

Estoy escribiendo un servidor Java basado en Apache Thrift, que recibirá datos de un cliente de Javascript. He completado el servidor Java, pero el problema es que puedo obtener un ejemplo de trabajo para el cliente Javascript (no pude encontrar un buen ejemplo para él). los ejemplos en la documentación de compilación no son muy útiles. Mi cliente actual, JavaScript es continuación:Apache Thrift Java-Javascript comunicación

function testServer() { 
    try { 
     var transport = new Thrift.Transport("http://127.0.0.1:9090"); 
     var protocol = new Thrift.Protocol(transport); 
     var client = new JavaEventClient(protocol); 

     var alive = client.isServerAlive(); 
    } catch(e) { 
    } 
} 

testServer(); 

Pero el código no está funcionando - como el servidor de Java genera un error de "memoria". No sé si el error se debe a mi código de cliente o Apache Thrift.

¿Qué estoy haciendo mal?

+0

¿Has probado aumentar la memoria JVM? – kgautron

+0

Sí, eso no ayudó. – John

+0

Thrift en Java maliciosamente lanzará un OOM en una entrada falsa, parece que el cliente JS envía algo incorrecto allí. Supongo que su definición de protocolo en el lado del servidor tiene el método 'isServerAlive()'? – favoretti

Respuesta

0

Parece que hay un problema de comunicación. Tal vez use un protocolo o transporte diferente en el servidor y el cliente. o error en implementaciones de esos protocolos. // como ejemplo, encontré un error con los caracteres utf8 en la serialización de ahorro y javascript.

Mire por favor en https://github.com/imysak/using-thrift (Mi amigo y yo escribimos este ejemplo simple de la comunicación Java-Node.js vía el ahorro).

Espero que pueda utilizar algo de nuestra implementación de JS.

0

El error Out Of Memory ocurre cuando su servidor está usando TBinaryProtocol pero intenta acceder a él de otra manera, p. usando un navegador (que habla HTTP). IMO que es un error. Debería haber algún buen mensaje de error en su lugar.

Los archivos sobre cómo hacer que un servidor Thrift Java funcione con un cliente de Thrift Javascript están dispersos por toda la fuente. Los he confundido aquí: https://github.com/LukeOwncloud/ThriftJavaJavascriptDemo