Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Restlet并发问题_Java_Restlet - Fatal编程技术网

Java Restlet并发问题

Java Restlet并发问题,java,restlet,Java,Restlet,在一些(非常简单的)并发调用之后,我的Restlet似乎变得没有响应。为了以最简单的方式复制,我设置了一个简单的应用程序: public final class TestRestlet extends Application { public static final String COUNT_10_ROUTE = "/countTen"; public static final String COUNT_20_ROUTE = "/countTwenty"; @Ove

在一些(非常简单的)并发调用之后,我的Restlet似乎变得没有响应。为了以最简单的方式复制,我设置了一个简单的应用程序:

public final class TestRestlet extends Application {

    public static final String COUNT_10_ROUTE = "/countTen";
    public static final String COUNT_20_ROUTE = "/countTwenty";

    @Override
    public final Restlet createInboundRoot() {
        final Router mainRouter = new Router(getContext());

        mainRouter.attach(COUNT_10_ROUTE, CountToTenResource.class);
        mainRouter.attach(COUNT_20_ROUTE, CountToTwentyResource.class);

        return mainRouter;
    }
}
这些资源只执行一个简单的迭代,如下所示:

public final class CountToTenResource extends ServerResource {

    @Get
    public Representation count() {
        for (int i = 0; i < 10; i++) {
            System.out.println("CT10 resource - counted up to " + i);
            try {
                Thread.sleep(1000);
            } catch (final InterruptedException e) {
                e.printStackTrace();
            }
        }
        return new StringRepresentation("Counted to 10\n");
    }
}
然后我继续同时卷曲这两个资源

curl -X GET http://localhost:12345/countTen
curl -X GET http://localhost:12345/countTwenty
第一个资源成功地返回了它的消息,但是第二个资源似乎冻结了,并且从那时起整个restlet都没有响应。我对restlet执行了相同的测试,并且restlet再次被卡住


有人知道为什么会发生这种情况以及如何解决吗?我做错了什么?我使用的是Restlet版本2.1.0。

Theo,请尝试将Jetty或简单扩展JAR及其依赖项添加到类路径中。这将替换不够稳定的内部/默认HTTP连接器。

是否应捕获一般异常?可能第二个调用引发异常,服务器中止?
curl -X GET http://localhost:12345/countTen
curl -X GET http://localhost:12345/countTwenty