我们的应用程序使用@Component注释进行类测试。 这里使用了Lambda表达式。
@Component
public class Test{
private ScheduledExecutorService schedulerExecutorService;
private long timeoutForRollBack=180000;
private long timeoutFailoverDelay=180000;
public static Test getInstance() {
if (INSTANCE == null) {
/*Actual instance will be created via reflection. using new for understanding */
INSTANCE = new Test();
}
return INSTANCE;
}
public void handleFailOver(){
schedulerExecutorService.scheduleWithFixedDelay(
() -> {
schedulerExecutorService.shutdown();
},
timeoutForRollBack, timeoutFailoverDelay, TimeUnit.MILLISECONDS);
}
}
但是没有创建这个Test类bean。但是当评论此方法时,则会创建Test类bean。
使用Java 8 oracle和Eclipse Neon2。
建议是否需要进行任何更改以解决此问题。
编辑1:
发现类似问题: https://java.net/jira/browse/JAVASERVERFACES-3732
编辑2:
的类似问题
P.S:
如果
() -> {
schedulerExecutorService.shutdown();
}
替换为私有内部类,这很好。
private class TerminalScheduledExecutor implements Runnable{
@Override
public void run() {
schedulerExecutorService.shutdown();
}
}.
然而,在没有替换lambda函数的情况下期待解决方案。
答案 0 :(得分:1)
您是否尝试更改spring框架的详细bean创建日志的日志记录级别?
在此提出建议: Question with no answers, but issue solved in the comments (or extended in chat)
答案 1 :(得分:0)
最后找到了解决方案:
问题是
org.reflections.Reflections
版本。将其升级为
0.9.9-RC2
问题已解决。
根据@OnurAktaş建议,启用调试并找到
无法扫描org.reflections.reflection中发生的文件错误。