相关疑难解决方法(0)

如何分配线程来处理Servlet请求?

有人可以解释每个连接的每个请求和线程的线程是什么?servlet工作的模型是什么?如何分配线程来处理HTTP请求?是线程/请求还是连接?

让我们说如果我想在我ServletdoGet()方法中异步执行一个耗时的任务,我会使用Java执行程序启动一个新线程,以便在一个单独的线程中完成冗长的计算,并立即发送响应.

现在这样做是否确保我已经释放了处理我的线程,HttpServletRequest或者它仍然被使用,因为子线程仍在运行?

java multithreading servlets java-ee threadpool

52
推荐指数
1
解决办法
3万
查看次数

在JSF托管bean中启动新线程是否安全?

我无法找到一个明确的答案,确定在会话范围内的JSF托管bean中生成线程是否安全.线程需要调用无状态EJB实例上的方法(依赖注入到托管bean).

背景是我们有一个需要很长时间才能生成的报告.这导致HTTP请求由于我们无法更改的服务器设置而超时.因此,我们的想法是启动一个新线程,让它生成报告并暂时存储它.与此同时,JSF页面显示了一个进度条,轮询托管bean直到生成完成,然后再发出第二个请求来下载存储的报告.这似乎有效,但我想确定我所做的不是黑客.

concurrency jsf ejb java-ee

45
推荐指数
2
解决办法
2万
查看次数

Java:全局异常处理程序

有没有办法在Java中创建一个全局异常处理程序.我想这样使用:

"When an exception is thrown somewhere in the WHOLE program, exit."
Run Code Online (Sandbox Code Playgroud)

处理程序可能无法捕获try-catch正文中抛出的异常.

马亭

java exception-handling exception

40
推荐指数
1
解决办法
4万
查看次数

30
推荐指数
2
解决办法
5406
查看次数

Java EE规范和多线程

我正在使用Struts和Spring编写Java EE应用程序.在其中一个操作中,存在大量数据库处理,因此存在性能问题.我想知道的是我可以在这里使用多线程吗?我认为Java EE规范不允许创建自定义线程,而不是由Server创建的线程(我使用Weblogic).请指导我完成这个.

java multithreading java-ee

28
推荐指数
3
解决办法
3万
查看次数

EJB如何并行化长时间CPU密集型流程?

该应用程序具有CPU密集型长进程,当客户端请求时,该进程当前在一个服务器(EJB方法)上串行运行.

理论上可以(从概念的角度)将该进程拆分为N个块并并行执行它们,只要可以收集并连接所有并行作业的输出,然后再将其发送回发起进程的客户端.我想使用这种并行化来优化性能.

如何使用EJB实现此并行化?我知道我们不应该在EJB方法中创建线程.相反,我们应该发布消息驱动bean(MDB)消息(每个作业一个).但那时它不再是同步通话了.在这种情况下,同步似乎是一个要求,因为我需要在将所有作业的输出发送回客户端之前收集它们的输出.

这有解决方案吗?

java architecture parallel-processing ejb

13
推荐指数
2
解决办法
1万
查看次数

在Application Server中进行线程处理

我有一个Java程序/线程,我想部署到Application Server(GlassFish).该线程应作为"服务"运行,该服务在Application Server启动时启动,在Application Server关闭时停止.

我该怎么做呢?它实际上不是会话Bean或MDB.这只是一个主题.

java multithreading ejb glassfish application-server

12
推荐指数
2
解决办法
8179
查看次数

如何在Java EE中启动后台进程

我想在Java EE(OC4J 10)环境中启动后台进程.用"新线程"启动一个线程似乎是错误的但是我找不到一个好方法.

在我的特殊情况下,使用JMS队列很困难,因为此方法调用的参数不可序列化.

我还想过onTimeout在会话bean上使用Timer方法,但这不允许我传递参数(据我所知).

是否有任何"正典"方式来处理这样的任务,或者我只需要恢复到"新线程"或者java.concurrent.ThreadPool.

java ejb java-ee

10
推荐指数
1
解决办法
8928
查看次数

9
推荐指数
2
解决办法
5404
查看次数

JavaEE应用服务器中的CompletableFuture/parallelStream

鉴于新的Java8,我们为异步任务获得了非常好的功能,例如CompletableFuture和.paralellStream().如果你在Java SE中运行它,因为我已经理解它你将使用ForkJoinPool,但是如果我在例如Wildfly或TomcatEE中运行以下示例会发生什么?

//Here I start a comp.Future without giving an Executor
test = CompletableFuture.supplyAsync(() -> timeConsumingMethod());
//Here I start a parallel stream 
mList.paralell().filter(...).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)

会发生什么,我将从哪里借用我的资源

  1. 这些示例在@Stateful bean中运行
  2. 这些示例在@Stateless bean中运行
  3. 这些示例在CDI bean中运行

java asynchronous java-ee java-ee-7 completable-future

8
推荐指数
1
解决办法
1550
查看次数