我正在编写一个基于Apache Thrift的Java服务器,它将从Javascript客户端接收数据。我已经完成了Java服务器,但问题是我可以为Javascript客户端找到一个有效的例子(我无法找到一个很好的例子)。构建文档中的示例不是很有用。我目前的Javascript客户端如下:
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();
但代码无效 - 因为Java服务器抛出“内存不足”错误。我不知道错误是由于我的客户端代码还是Apache Thrift。
我做错了什么?
答案 0 :(得分:0)
看起来像通讯中的问题。也许您在服务器和客户端上使用不同的协议或传输。或该协议的实现中的错误。 //例如我在thrift-javascript序列化中发现了utf8字符的错误。
请查看https://github.com/imysak/using-thrift(我的朋友和我通过thrift编写了这个简单的Java-Node.js通信示例)。
我希望你能使用我们JS实现的东西。
答案 1 :(得分:0)
当您的服务器使用Out Of Memory
但您尝试以其他方式访问它时发生TBinaryProtocol
错误,例如使用浏览器(说HTTP)。 IMO是一个bug。应该有一些很好的错误信息。
如何使Thrift Java服务器与Thrift Javascript客户端一起工作的文件分散在整个源代码中。我在这里一起困惑:https://github.com/LukeOwncloud/ThriftJavaJavascriptDemo