小编zaf*_*003的帖子

tomcat http-bio 和 ajp-bio 线程的区别

我正在查看与 Apache 服务器一起运行的 tomcat 7 应用程序的线程转储。我看到了名为“ajp-bio-8009-exec”和“http-bio-8080-exec”的线程。它们之间有什么区别?我知道 AJP 是 Tomcat 连接器 BIO 使用的协议。

tomcat web-services

6
推荐指数
0
解决办法
599
查看次数

Runnable @Component类中的@Async不允许它获得Autowired

我有两个类Uploader和UploadTask.使用Spring 4.

 @Service 
 public class Uploader{
  @Autowired
  private UploadTask task;
 }
 @Component
 public class UploadTask implements Runnable{
   @Async
   public void soso(){
   }
   public void run(){
   }
 }
Run Code Online (Sandbox Code Playgroud)

在应用程序启动时,我得到以下异常:

org.springframework.beans.factory.BeanCreationException:创建名为'uploader'的bean时出错:注入自动连接的依赖项失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:private com.xx.uploading.UploadTask com.xx.uploading.Uploader.task; 嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到类型为[com.xx.uploading.UploadTask]的限定bean:期望至少有一个bean可以作为此依赖项的autowire候选者.依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true),@ org.springframework.beans.factory.annotation.Qualifier(value = uploadTask)}

我想这可能是因为UploadTask是一个Runnable.当我删除@Async注释时,它不会抛出任何异常.有解释吗?

更新:当我看到日志时,我发现正在创建UploadTask类bean.在自动装配期间未找到它.

java spring spring-mvc

5
推荐指数
1
解决办法
1355
查看次数

如何在 Vertx 事件循环线程上运行 CompletableFuture 处理程序?

我有一个库 xyz,它为我提供了一个 CompletableFuture,我想在我的 Vertx (v3.5) 事件循环中处理它。目前我正在使用CompletableFuture.handle(BiFunction)(见下文),但我想使用CompletableFuture.handleAsync(BiFunction, Executor),但我无法弄清楚如何在此方法调用中向第二个参数提供 vertx 事件循环线程.

我尝试在Vertx.runOnContext() 中执行整个代码,但 handleAsync 内部的调用仍然在 Java 的 ForkJoin 池上执行,我想避免这种情况。

CompletableFuture<Void> f = xyz.someMethod();
f.handle((v, th) -> { //Want to run this in handleAsync()
   if (th == null) {
     future.complete(null);
   } else {
     future.completeExceptionally(th);
   }
   return null;
});
Run Code Online (Sandbox Code Playgroud)

java reactive-programming java-8 vert.x completable-future

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