서버 코드 :서비스 다중 이용하여 아파치 드리프트
TMultiplexedProcessor processor = new TMultiplexedProcessor();
processor.registerProcessor(
"AddService",
new AddService.Processor(new AddHandler()));
processor.registerProcessor(
"MultiplyService",
new MultiplyService.Processor(new MultiplyHandler()));
TServerTransport serverTransport = new TServerSocket(7911);
TSimpleServer server = new TSimpleServer(new TSimpleServer.Args(serverTransport).
processor(processor));
System.out.println("Starting server on port 7911 ...");
server.serve();
클라이언트 코드 :
TFramedTransport transport;
transport = new TFramedTransport(new TSocket("localhost", 7911));
transport.open();
TProtocol protocol = new TBinaryProtocol(transport);
System.out.println("1");
TMultiplexedProtocol mp = new TMultiplexedProtocol(protocol, "AddService");
AddService.Client service = new AddService.Client(mp);
System.out.println("2");
TMultiplexedProtocol mp2 = new TMultiplexedProtocol(protocol, "MultiplyService");
MultiplyService.Client service2 = new MultiplyService.Client(mp2);
System.out.println("3");
System.out.println(service.add(2,2));
System.out.println(service2.multiply(2000,200));
하지만 서버를 실행하고 할 때 (7911 포트에서 수신)와 클라이언트는 클라이언트 나던 과정 마지막 두 번은 덧셈/곱하기 함수를 호출합니다.
인수가 서버로 전송되었지만 서버에서 처리 할 수 없다는 것을 디버그 할 수 있습니다.
내가 누락 된 부분에 대한 설명이 있습니까?
특히 다국어 RPC 프레임 워크로서의 Thrift를 사용하면 언어를 아는 데 도움이됩니다. 기음#? C++? 자바? System.out.println()은 후자와 같습니다 ... – JensG
이것은 java에만 있습니다 .. 클라이언트와 서버 모두 –
"서버가 정확하게 처리 할 수 없다"는 것은 무엇입니까? 오류 메시지가 표시됩니까? 아니면 다른 메시지가 있습니까? – JensG