thrift namespace java com.example.thrift struct Person { 1: required string name, 2: optional i32 age, 3: required string address } service PersonService { bool addPerson(1: Person person), Person getPerson(1: string name) } thrift --gen java example.thrift package com.example.thrift; import org.apache.thrift.TException; public class PersonServiceImpl implements PersonService.Iface { @Override public boolean addPerson(Person person) throws TException { return true; } @Override public Person getPerson(String name) throws TException { return new Person(); } } package com.example.thrift; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TSimpleServer; import org.apache.thrift.transport.TServerSocket; import org.apache.thrift.transport.TServerTransport; public class Server { public static void main(String[] args) { try { PersonServiceImpl handler = new PersonServiceImpl(); PersonService.Processor<PersonServiceImpl> processor = new PersonService.Processor<>(handler); TServerTransport serverTransport = new TServerSocket(9090); TServer server = new TSimpleServer(new TServer.Args(serverTransport).processor(processor)); System.out.println("Starting the server..."); server.serve(); } catch (Exception e) { e.printStackTrace(); } } } package com.example.thrift; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; public class Client { public static void main(String[] args) { try { TTransport transport = new TSocket("localhost", 9090); transport.open(); TBinaryProtocol protocol = new TBinaryProtocol(transport); PersonService.Client client = new PersonService.Client(protocol); Person person = new Person(); person.setName("John Doe"); person.setAge(30); person.setAddress("123 Main St"); client.addPerson(person); Person retrievedPerson = client.getPerson("John Doe"); System.out.println("Retrieved person: " + retrievedPerson.getName()); transport.close(); } catch (Exception e) { e.printStackTrace(); } } }


上一篇:
下一篇:
切换中文