我在ClientDolphin类(open-dolphin)上遗漏了类似:'isConnected'的内容

时间:2013-07-27 19:34:23

标签: java client-server apache-httpclient-4.x opendolphin

如果我运行以下java类,没有异常或错误消息,但我确定无法建立连接(GrailsApplication1没有运行,'url'没有指向任何bean):

public class ConnectNow {

private void connect() {
    ClientDolphin dClient = new ClientDolphin();

    dClient.setClientModelStore(new ClientModelStore(dClient));
    String url = "http://localhost:8080/GrailsApplication1/";
    ClientConnector connector = new HttpClientConnector(dClient, url);
    connector.setCodec(new JsonCodec());
    dClient.setClientConnector(connector);
    dClient.send("Hi from client");
}

public static void main(String[] args) {
    ConnectNow cn = new ConnectNow();
    cn.connect();
    System.out.println("End");
}

}

Soo,我如何识别是否建立了连接?我是客户端/服务器开发人员的新手,所以也许我错过了一些明显的东西。

感谢您提供任何建议或文档参考!

1 个答案:

答案 0 :(得分:1)

现在,我想出来了......关键是我必须将代码作为应用程序运行,在本例中为javafx app。然后,如果您尝试传输某些内容(dClient发送“嗨...... - 在这种情况下)”,应用会尝试发送消息,如果ConnectException: Connection refused上没有任何内容正在运行,则会获得url

在我看来,这是open-dolphin服务器accessibity测试的最短版本:

import javafx.application.Application;
import javafx.stage.Stage;
import org.opendolphin.core.client.ClientDolphin;
import org.opendolphin.core.client.ClientModelStore;
import org.opendolphin.core.client.comm.ClientConnector;
import org.opendolphin.core.client.comm.HttpClientConnector;
import org.opendolphin.core.comm.JsonCodec;

/**
 *
 * @author Václav Hanton
 */
public class ConnectNow extends Application {

    private void connect() {
        ClientDolphin dClient = new ClientDolphin();

        ClientModelStore mStore = new ClientModelStore(dClient);
        dClient.setClientModelStore(mStore);
        String url = "http://localhost:8080/GrailsApplication1/";
        ClientConnector connector = new HttpClientConnector(dClient, url);
        connector.setCodec(new JsonCodec());

        dClient.setClientConnector(connector);
        dClient.send("Hi from client");
    }

    public static void main(String[] args) {
        ConnectNow cn = new ConnectNow();
        cn.connect();
        Application.launch();
    }

    @Override
    public void start(Stage stage) throws Exception {
        System.out.println("Started");
    }
}