Wildfly 8.2上的Spring异步任务
我试图在我的服务上实现一个异步方法,使用@Async并返回ListenableFuture和返回@ResponseBy可调用的控制器方法,我有一个线程池作为bean配置为对Spring的异步支持。它在Tomcat 8.0.15上运行得很好,在Wildfly上,服务方法在控制器方法上执行,但控制器从不在网页上返回,容器只是返回服务不可用。我试图在Jboss结构部署描述符上删除ee模块,但后来WAR没有部署。有没有人能给你一些建议 编辑 日志不会输出任何错误 控制员:Wildfly 8.2上的Spring异步任务,spring,wildfly-8,Spring,Wildfly 8,我试图在我的服务上实现一个异步方法,使用@Async并返回ListenableFuture和返回@ResponseBy可调用的控制器方法,我有一个线程池作为bean配置为对Spring的异步支持。它在Tomcat 8.0.15上运行得很好,在Wildfly上,服务方法在控制器方法上执行,但控制器从不在网页上返回,容器只是返回服务不可用。我试图在Jboss结构部署描述符上删除ee模块,但后来WAR没有部署。有没有人能给你一些建议 编辑 日志不会输出任何错误 控制员: @RequestMapping
@RequestMapping(value = {"search/{query}"}, method = RequestMethod.GET)
public Callable<GithubResult> printResult(@PathVariable String query) {
Assert.notNull(query, "Query must be not null");
ListenableFuture<ResponseEntity<GithubResult>> result = githubLookupService.lookup(query);
return () -> result.get().getBody();
}
服务:
@Async
@Override
public ListenableFuture<ResponseEntity<GithubResult>> lookup(String query) {
Assert.notNull(query,"Query must be not null");
String url = String.format("https://api.github.com/search/repositories?q=%s+language:java", query);
ListenableFuture<ResponseEntity<GithubResult>> reponseFuture = asyncTemplate
.getForEntity(url, GithubResult.class);
try {
return new AsyncResult<>(reponseFuture.get());
} catch (InterruptedException | ExecutionException e) {
log.error("Cannot retrieve the response entitiy");
return reponseFuture;
}
}
以及弹簧配置:
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<task:scheduler id="scheduler" pool-size="10"/>
<task:annotation-driven executor="taskExecutor" scheduler="scheduler" proxy-target-class="true"/>
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="50"/>
<property name="maxPoolSize" value="50"/>
<property name="queueCapacity" value="20"/>
<property name="waitForTasksToCompleteOnShutdown" value="true"/>
</bean>
<bean id="schedulerFacotryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="autoStartup" value="true"/>
<property name="taskExecutor" ref="taskExecutor"/>
</bean>
如果不查看配置/代码/日志,很难发表评论。请发表相关文章。@Bond JavaBond添加了源代码,没有wildfly配置。对于独立模式,所有配置都处于默认状态