From e290dce448399d7f256dcf011995d06f9a7c1e1c Mon Sep 17 00:00:00 2001 From: WuXianChaoPin <1029559041@qq.com> Date: Fri, 15 Jun 2018 18:28:07 +0800 Subject: [PATCH] thrift --- .../core/thrift/ConnectionPoolFactory.java | 11 ++++-- .../java/core/thrift/ThriftClientPool.java | 5 ++- web/src/test/java/SpringTest.java | 7 +--- web/src/test/java/ThriftTest.java | 37 +++++++++++++++++++ 4 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 web/src/test/java/ThriftTest.java diff --git a/core/src/main/java/core/thrift/ConnectionPoolFactory.java b/core/src/main/java/core/thrift/ConnectionPoolFactory.java index 87b5b3c..244cfe1 100644 --- a/core/src/main/java/core/thrift/ConnectionPoolFactory.java +++ b/core/src/main/java/core/thrift/ConnectionPoolFactory.java @@ -7,12 +7,12 @@ import org.apache.thrift.transport.TNonblockingSocket; import org.apache.thrift.transport.TTransport; -public class ConnectionPoolFactory extends BasePooledObjectFactory{ +public class ConnectionPoolFactory extends BasePooledObjectFactory { private String ip; private int port; private int socketTimeout; - public ConnectionPoolFactory(String ip,int port,int socketTimeout) { + public ConnectionPoolFactory(String ip, int port, int socketTimeout) { this.ip = ip; this.port = port; this.socketTimeout = socketTimeout; @@ -21,7 +21,7 @@ public class ConnectionPoolFactory extends BasePooledObjectFactory{ @Override //创建TTransport类型对象方法 public TTransport create() throws Exception { - return new TNonblockingSocket(ip, port,socketTimeout); + return new TNonblockingSocket(ip, port, socketTimeout); } //把TTransport对象打包成池管理的对象PooledObject @@ -29,4 +29,9 @@ public class ConnectionPoolFactory extends BasePooledObjectFactory{ public PooledObject wrap(TTransport transport) { return new DefaultPooledObject<>(transport); } + + @Override + public boolean validateObject(PooledObject p) { + return p.getObject().isOpen(); + } } diff --git a/core/src/main/java/core/thrift/ThriftClientPool.java b/core/src/main/java/core/thrift/ThriftClientPool.java index 839fafb..e5078d7 100644 --- a/core/src/main/java/core/thrift/ThriftClientPool.java +++ b/core/src/main/java/core/thrift/ThriftClientPool.java @@ -19,16 +19,17 @@ public class ThriftClientPool { private String ip; @Value("${thrift.port}") - private int port; + private Integer port; @Value("${thrift.timeout}") - private int timeout; + private Integer timeout; private static GenericObjectPool pool; @PostConstruct public void init() { pool = new GenericObjectPool<>(new ConnectionPoolFactory(ip, port, timeout)); + } public static void doExecute(Thrift thrift) throws Exception { diff --git a/web/src/test/java/SpringTest.java b/web/src/test/java/SpringTest.java index 13f86e4..0c919c7 100644 --- a/web/src/test/java/SpringTest.java +++ b/web/src/test/java/SpringTest.java @@ -106,10 +106,5 @@ public class SpringTest { resultActions.andDo(MockMvcResultHandlers.print()).andReturn(); } - @Test - public void thrift() throws Exception { - MyAsyncMethodCallback call= new MyAsyncMethodCallback<>(); - ThriftClientPool.doExecute(client -> client.commentSum(49052,call)); - log.info(call.getResult()); - } + } diff --git a/web/src/test/java/ThriftTest.java b/web/src/test/java/ThriftTest.java new file mode 100644 index 0000000..ded3a34 --- /dev/null +++ b/web/src/test/java/ThriftTest.java @@ -0,0 +1,37 @@ +import core.thrift.MyAsyncMethodCallback; +import core.thrift.ThriftClientPool; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import web.config.SpringConfig; + +import java.util.ArrayList; + +//让测试运行于Spring环境 +@RunWith(SpringJUnit4ClassRunner.class) +@SpringJUnitWebConfig +@ContextConfiguration(classes = {SpringConfig.class}) +public class ThriftTest { + + private static Logger log = LogManager.getLogger(); + + @Test + public void commentSum() throws Exception { + MyAsyncMethodCallback call = new MyAsyncMethodCallback<>(); + ThriftClientPool.doExecute(client -> client.commentSum(49052, call)); + log.info(call.getResult()); + } + + @Test + public void download() throws Exception { + MyAsyncMethodCallback call = new MyAsyncMethodCallback<>(); + ThriftClientPool.doExecute(client ->client.download(new ArrayList(){{ + add(49052); + }},"test",call)); + log.info(call.getResult()); + } +}