You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Dylan Yang <dy...@point.io> on 2014/11/26 16:58:45 UTC
Fwd: Apache Thrift iOS Client cannot get data from Play server
This is my Thrift IDL i generated used for Cocoa,Python and Scala
Playframework,
namespace scala point.io.thrift
service ProcessTypesThrift {
string getProcessTypes();}
For the server side, i use Scrooge and Finagle to generate native Thrift
Scala code and use Play framework build a Thrift server written by Scala.
For the client side, the Thrift code is generated by native Thrift code
generator, and i use cocoa and python to build clients for test. The result
is that python client can get the response from the Play server to make
sure the server is running properly. However, the cocoa client cannot get
any response from the server, and throws exceptions as follows.
Here is my cocoa code:
ProcessTypesThriftClient *server;
NSLog(@"This is the log info: ...");
TSocketClient *transport = [[TSocketClient alloc]
initWithHostname:@"localhost" port:9091];
NSLog(@"Complete init *transport");
TBinaryProtocol *protocol = [[TBinaryProtocol alloc]
initWithTransport:transport strictRead:YES strictWrite:YES];
NSLog(@"Complete init *protocol");
server = [[ProcessTypesThriftClient alloc] initWithProtocol:protocol];
NSLog(@"Complete init server");
NSLog(@"Receiving data...");
NSString *str = [server getProcessTypes]; // receive data
NSLog(@"Complete received data");
NSLog(@"str%@",str);
NSLog(@"done!");
And this is the exception as listed:
2014-11-20 13:08:06.801 ThriftClient3[10983:524097] This is the log
info: ...2014-11-20 13:08:06.817 ThriftClient3[10983:524097] Complete
init *transport2014-11-20 13:08:06.818 ThriftClient3[10983:524097]
Complete init *protocol2014-11-20 13:08:06.818
ThriftClient3[10983:524097] Complete init server2014-11-20
13:08:06.819 ThriftClient3[10983:524097] Receiving data...2014-11-20
13:08:06.850 ThriftClient3[10983:524097] *** Terminating app due to
uncaught exception 'TTransportException', reason: 'Error writing to
transport output stream.'*** First throw call stack:(
0 CoreFoundation 0x000000010aa74f35
__exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010a2ffbb7
objc_exception_throw + 45
2 ThriftClient3 0x0000000109db7e0e
-[TNSStreamTransport write:offset:length:] + 334
3 ThriftClient3 0x0000000109dae8c9
-[TBinaryProtocol writeI32:] + 137
4 ThriftClient3 0x0000000109dae683
-[TBinaryProtocol writeMessageBeginWithName:type:sequenceID:] + 115
5 ThriftClient3 0x0000000109db3801
-[ProcessTypesThriftClient send_getProcessTypes] + 81
6 ThriftClient3 0x0000000109db3adb
-[ProcessTypesThriftClient getProcessTypes] + 43
7 ThriftClient3 0x0000000109db1808
-[ViewController viewDidLoad] + 376
8 UIKit 0x000000010b02da90
-[UIViewController loadViewIfRequired] + 738
9 UIKit 0x000000010b02dc8e
-[UIViewController view] + 27
10 UIKit 0x000000010af4cca9
-[UIWindow addRootViewControllerViewIfPossible] + 58
11 UIKit 0x000000010af4d041
-[UIWindow _setHidden:forced:] + 247
12 UIKit 0x000000010af5972c
-[UIWindow makeKeyAndVisible] + 42
13 UIKit 0x000000010af04061
-[UIApplication
_callInitializationDelegatesForMainScene:transitionContext:] + 2628
14 UIKit 0x000000010af06d2c
-[UIApplication _runWithMainScene:transitionContext:completion:] +
1350
15 UIKit 0x000000010af05bf2
-[UIApplication workspaceDidEndTransaction:] + 179
16 FrontBoardServices 0x000000010d2222a3
__31-[FBSSerialQueue performAsync:]_block_invoke + 16
17 CoreFoundation 0x000000010a9aa53c
__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
18 CoreFoundation 0x000000010a9a0285
__CFRunLoopDoBlocks + 341
19 CoreFoundation 0x000000010a9a0045
__CFRunLoopRun + 2389
20 CoreFoundation 0x000000010a99f486
CFRunLoopRunSpecific + 470
21 UIKit 0x000000010af05669
-[UIApplication _run] + 413
22 UIKit 0x000000010af08420
UIApplicationMain + 1282
23 ThriftClient3 0x0000000109db6483 main + 115
24 libdyld.dylib 0x000000010cbf6145 start + 1)
libc++abi.dylib: terminating with uncaught exception of type
TTransportException(lldb)
I use xcode 6.1 and Thrift 0.9.1 to running my cocoa project. Anybody could
point out how to solve this problem would appreciate.