为什么在重新启动 Spark 服务器后出现 "connection refused" 错误?

Why am I getting "connection refused" error after restart Spark server?

我有这个测试classes:

class PostIT {

    companion object {

        @BeforeClass
        @JvmStatic
        fun initialise() {
            baseURI = "http://localhost:4567"
            Server.start()
        }

        @AfterClass
        @JvmStatic
        fun tearDown() {
            Server.stop()
        }

    }

    //some test cases

}

class UserIT {

    companion object {

        @BeforeClass
        @JvmStatic
        fun initialise() {
            baseURI = "http://localhost:4567"
            Server.start()
        }

        @AfterClass
        @JvmStatic
        fun tearDown() {
            Server.stop()
        }

    }

    //some test cases

}

Server对象:

object Server {

    fun start() {
        Spark.init()
        prepareRoutes()
    }

    fun stop() {
        Spark.stop()
    }

    private fun prepareRoutes() {
        get("/users", whatever)
        //more routes
    }        

}

当我 运行 都分别测试 class 时,它工作正常。但是,当我告诉 IDE 到 运行 两个测试 classes 时,我得到 connection refused error 当第二个测试 class 是 运行.

好像服务器停止后就再也不会启动了。就像服务器停止后 Spark.init() 无法正常工作。

我也试过在 Spark.init() 之后调用 Spark.awaitInitialization()

我错过了什么?

已解决!实际上,问题不在于停止后的服务器初始化。我们必须等到服务器停止。我找到了解决方案 .

fun stop() {
    try {
        Spark.stop()
        while (true) {
            try {
                Spark.port()
                Thread.sleep(500)
            } catch (ignored: IllegalStateException) {
                break
            }

        }
    } catch (ex: Exception) {
    }
}