我不得不将一个旧的 JHipster 应用程序迁移到 JHipster 5.0 beta 0 以解决几个错误,当我这样做时,我尝试将 JHipster Registry 添加到它(该应用程序是负载平衡的,带有 Hazelcast 缓存)。
新的 5.0 应用程序从未完全启动,并且似乎在 Hazelcast 配置后立即被锁定。最后的日志行是:
2018-04-12 16:04:03.317 INFO 4160 --- [ restartedMain] com.hazelcast.core.LifecycleService : [172.17.0.1]:5701 [dev] [3.9.3] [172.17.0.1]:5701 is STARTING
2018-04-12 16:04:03.378 WARN 4160 --- [ restartedMain] com.hazelcast.instance.Node : [172.17.0.1]:5701 [dev] [3.9.3] No join method is enabled! Starting standalone.
2018-04-12 16:04:03.379 INFO 4160 --- [ restartedMain] com.hazelcast.system : [172.17.0.1]:5701 [dev] [3.9.3] Cluster version set to 3.9
2018-04-12 16:04:03.425 INFO 4160 --- [ restartedMain] com.hazelcast.core.LifecycleService : [172.17.0.1]:5701 [dev] [3.9.3] [172.17.0.1]:5701 is STARTED
经过进一步调查,我使用 JHipster 创建了两个准系统单体应用程序,一个带有注册表,一个没有。然后我在两个项目中添加了以下配置类:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfigurationAdditional extends GlobalMethodSecurityConfiguration {
@Autowired
private UserRepository userRepository;
@Override
protected MethodSecurityExpressionHandler createExpressionHandler() {
return null;
}
}
没有注册表的项目按预期工作,但另一个项目(有注册表)以相同的方式锁定。
对此负责的似乎是自动装配的 UserRepository,因为当我注释掉这个时,带有注册表的项目也可以正常工作。罪魁祸首必须是 Netflix Eureka 和/或 Spring Cloud,它们是我的两个项目之间的唯一区别。
有没有人看到这种行为?