Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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
从JavaEE应用程序管理到Twitter流式API的长时间运行连接_Java_Rest_Twitter_Jakarta Ee_Ejb - Fatal编程技术网

从JavaEE应用程序管理到Twitter流式API的长时间运行连接

从JavaEE应用程序管理到Twitter流式API的长时间运行连接,java,rest,twitter,jakarta-ee,ejb,Java,Rest,Twitter,Jakarta Ee,Ejb,我需要创建一个从Java EE6应用程序到的长时间运行的连接,并且能够在出现故障时监视和重新建立连接 我已经用Jersey JAX-RS和OAuth运行了一个测试,如下所示,这将按照我的意愿处理流数据 WebResource resource = client.resource(STATUS_URI); resource.addFilter(oauthFilter); ClientResponse clientResponse = resource.get(ClientResponse.clas

我需要创建一个从Java EE6应用程序到的长时间运行的连接,并且能够在出现故障时监视和重新建立连接

我已经用Jersey JAX-RS和OAuth运行了一个测试,如下所示,这将按照我的意愿处理流数据

WebResource resource = client.resource(STATUS_URI);
resource.addFilter(oauthFilter);
ClientResponse clientResponse = resource.get(ClientResponse.class);
InputStream is = clientResponse.getEntityInputStream();
BufferedReader r = new BufferedReader(new InputStreamReader(is, "UTF8"));
boolean more = true;
while (more) {
    String jsonTweet = r.readLine();
    //send tweet to JMS queue
    ..... 
}
我曾尝试在单例'@PostConstruct'方法中运行上述代码,但它会阻塞,并且应用程序无法正确加载

我的问题是,在应用程序启动时从JavaEE环境中初始化连接,然后在出现错误时监视并重新连接,而不直接创建新线程,推荐的方法是什么

建议的初始化方法 JavaEE中的连接 应用程序启动时的环境

您可以使用@Service创建特定于单例的实现,但我仍然更喜欢@Startup&@Singleton在应用程序部署时完成工作,以实现服务器的可移植性。 监视并在出现错误时重新连接,而不 直接创建新线程

ThreadPoolExecutor:一种ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors工厂方法进行配置。 例外情况下,任务可以重新提交给executor服务,任务可能包括监视、重新连接连接等

建议的初始化方法 JavaEE中的连接 应用程序启动时的环境

您可以使用@Service创建特定于单例的实现,但我仍然更喜欢@Startup&@Singleton在应用程序部署时完成工作,以实现服务器的可移植性。 监视并在出现错误时重新连接,而不 直接创建新线程

ThreadPoolExecutor:一种ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors工厂方法进行配置。
例外情况下,任务可以重新提交给executor服务,任务可能包括监视、重新连接连接等。

我认为从EJB中使用executor是违反规范的?是的,它可能会产生干扰,但如果使用,必须很好地处理它。A本来你也可以使用JMS来达到同样的目的。我认为在EJB中使用Executor是违反规范的?是的,它可能会产生干扰,但如果使用的话,必须很好地处理它。从本质上讲,您可以将JMS用于相同的目的。