私は非同期Jersey RESTful webapを作成しようとしています。ジャージ非同期マルチスレッドレスポンス?
次のコードは実装のテストに使用されていますが、機能していません。
@Path("/demox")
public class RESTClient {
public static boolean ran = false;
@GET
@Path("/test")
@ManagedAsync
public void test(@Suspended final AsyncResponse asyncResponse) throws InterruptedException {
asyncResponse.setTimeout(10000, TimeUnit.MILLISECONDS);
asyncResponse.setTimeoutHandler(ar -> ar.resume(
Response.status(Response.Status.SERVICE_UNAVAILABLE)
.entity("Operation timed out")
.build()));
if(!ran) {
while(true) {
ran = true;
}
}
asyncResponse.resume("REST IS OKAY! ");
}
}
私がテストする方法は、私はURLを2回開くことです。しかし、2番目のタブは常に最初のタブがタイムアウトするのを待ちます。これは明らかに機能しません。
サーブレットファイル:
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>services,org.codehaus.jackson.jaxrs</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
はい。しかし、2番目のブラウザのタブが読み込まれるのに必要な待ち時間はどのように説明しますか?最初のタブの後に開いているすべてのタブは、読み込みが完了するのを待ってから、すぐに読み込まれます。上記の –
リンクが壊れている場合は、https://jersey.github.io/documentation/latest/async.htmlを参照してください。 – anand