我正在尝试一个thrift客户端 - 服务器hello world call。
服务器是用java编写的,客户端是用javascript编写的。
Client.html如下:
<html>
<script src="thrift.js" type="text/javascript"> </script>
<script src="helloWorld.js" type="text/javascript" ></script>
<script src="callServer.js" type="text/javascript" ></script>
<body>
Test The thrift call....
<button onclick="getInfo();">Click me</button>
</body>
</html>
上面的thrift.js是thrift javascript库版本8.0,而helloWorld.js是来自以下thrift idl的生成的js文件。
service helloWorld{
string getWorld();
}
callServer.js
/*callServer.js*/
function getInfo() {
alert("reached callServer.js");
var url = "http://localhost:8080/myWebProj/HelloWorldServlet";
var transport = new Thrift.Transport(url);
var protocol = new Thrift.Protocol(transport);
var client = new helloWorldClient(protocol);
alert(client.getWorld());
}
在服务器端 我有一个在web.xml中映射的servlet和一个实现类
public class HelloWorldServlet extends TServlet{
private static final long serialVersionUID = -3425847860067398133L;
public HelloWorldServlet() {
super(new HelloWorld.Processor(new Hworld()),
new TJSONProtocol.Factory());
}
}
public class Hworld implements HelloWorld.Iface{
@Override
public String getWorld() throws TException {
// TODO Auto-generated method stub
System.out.println(" in hello World .... ");
return "Hello World";
}
}
当我尝试点击服务器时,上面代码中的sysout成功打印。但是在客户端,我得到NS_ERROR_FAILURE
。我想我做错了。请帮助我。如果需要任何其他信息,请将其发布为评论。