Browse Source

修复SDKBUG

Airhead 8 years ago
parent
commit
d333f0c863

+ 6 - 0
sdk/java/hos-client/pom.xml

@ -18,6 +18,12 @@
            <artifactId>jackson-databind</artifactId>
            <version>2.6.4</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+ 3 - 1
sdk/java/hos-client/src/main/java/com/yihu/hos/client/BrokerServer.java

@ -105,7 +105,9 @@ class BrokerServer {
            ExecutorService executorService = Executors.newCachedThreadPool();
            Future<ClientResponse> future = executorService.submit(new AsyncCall(clientRequest));
            ClientResponse clientResponse = future.get();
            callback.onReturn(clientResponse);
            if (callback != null) {
                callback.onReturn(clientResponse);
            }
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }

+ 56 - 0
sdk/java/hos-client/src/test/java/com/yihu/hos/client/BrokerServerClientTest.java

@ -0,0 +1,56 @@
package com.yihu.hos.client;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
/**
 * @author Airhead
 * @since 2016/11/24.
 */
public class BrokerServerClientTest {
    @Test
    public void invokeSync() throws Exception {
        BrokerServerClient brokerServerClient = new BrokerServerClient("127.0.0.1");
        ClientRequest clientRequest = new ClientRequest();
        clientRequest.setModule("serviceName");
        clientRequest.setMethod("methodName");
        Map<String, String> args = new HashMap<>();
        args.put("arg1", "value1");
        args.put("arg2", "value2");
        clientRequest.setArgs(args);
        ClientResponse clientResponse = brokerServerClient.invokeSync(clientRequest);
        if (clientResponse.getStackTrace() != null) {
            throw new Exception(clientResponse.getError());
        }
        System.out.println(clientResponse.getResult());
    }
    @Test
    public void invokeAsync() throws Exception {
        BrokerServerClient brokerServerClient = new BrokerServerClient("127.0.0.1");
        ClientRequest clientRequest = new ClientRequest();
        clientRequest.setModule("serviceName");
        clientRequest.setMethod("methodName");
        Map<String, String> args = new HashMap<>();
        args.put("arg1", "value1");
        args.put("arg2", "value2");
        clientRequest.setArgs(args);
        brokerServerClient.invokeAsync(clientRequest, null);
    }
    class AsyncCallback implements ResultCallback<ClientResponse>{
        @Override
        public void onReturn(ClientResponse result) {
            if (result.getStackTrace() != null) {
                System.out.println(result.getError().getMessage());
            }
            System.out.println(result.getResult());
        }
    }
}