いくつかのサービスを作成したいと思います。それらを異なる識別子で使いたいと思います。 だから私は:複数のサービスを1つのトランスポートで使用したい(Thrift)
私はユーザーとプロジェクトのサービスを持っている。 私はこれらを同時に使用したいと思います。
私はxmlrpcの "handlermap"にさらに "サービス"を追加できます。
http://ws.apache.org/xmlrpc/server.html
phm.addHandler("Users",
Users.class);
phm.addHandler("Projects",
Projects.class);
私は倹約で同じことをしたいと思います。 test.thrift
typedef i64 UserId
struct Bonk
{
1: string message,
2: i32 type
}
struct Insanity
{
1: map<Bonk, UserId> userMap,
2: list<Bonk> xtructs
}
service ThriftTest
{
void testVoid(),
string testString(1: string test),
byte testByte(1: byte test),
i32 testI32(1: i32 test),
i64 testI64(1: i64 test),
double testDouble(1: double test),
list<map<i32,i32>> testMap(1: map<i32,i32> test),
map<string,string> testStringMap(1: map<string,string> test),
set<i32> testSet(1: set<i32> test),
map<i32,map<i32,i32>> testMapMap(1: i32 test),
map<UserId, map<i32,Insanity>> testInsanity(1: Insanity argument)
}
その後、私はその後、TSERVERのインスタンスに追加し、implementatinoを作成します。ここでは
は簡単な例です。
Users.Processor users_proccesor = new Users.Processor(New UsersImpl());
Projects.Processor project_processor = new Projects.Processors(new ProjectsImp());
// I would like to add Users and Projects
ThriftTest.Processor prc = new ThriftTest.Processor(new ThiftTestImp());
TServerTransport serverTransport = new TServerSocket(9090);
TServer server = new TSimpleServer(new Args(serverTransport).processor(prc));
ここに大きな問題があります。サーバーの複数のインスタンスを追加することはできません。
ありがとうございます。