当在具有SSL的Azure Kubernetes服务上运行时,我的spring-boot应用程序在tomcat服务器中的NPE启动后失败。
首先,什么工作成功:我有一个使用Spring Initializr创建的最小的Spring-boot应用程序:
我想将其与蔚蓝云上的kubernetes集群一起使用。为此,我有一个Azure Kubernetes服务(AKS)。我使用臂架构建docker镜像。到目前为止,一切正常。我可以将docker映像部署到azure docker注册表,启动kubernetes集群(具有1个节点),并在调用“ http:// public-ip:8443 / hello” 后得到“ hello world ”。我使用端口8443,但使用正常的http来确保此端口不是我的问题的根源。
我希望我的应用程序支持HTTPS,因此我使用keytool制作了一个自签名证书(如此处所述:在Spring Boot 2.0中使用自签名证书启用HTTPS)。这在localhost上工作正常。它也可以在本地主机上运行的minikube内部运行。但是,当我在AKS上使用该docker映像时,我的应用程序启动后会失败几秒钟。
我激活了
logging.level.org.apache.tomcat=DEBUG
logging.level.org.apache.catalina=DEBUG
在我的application.properties中。我的应用程序的输出是:
2019-09-19 08:22:51.291  INFO 1 --- [           main] com.example.demo.DemoApplication         : Started DemoApplication in 9.623 seconds (JVM running for 10.419)
2019-09-19 08:22:53.775 DEBUG 1 --- [o-8443-Acceptor] o.apache.tomcat.util.threads.LimitLatch  : Counting up[https-jsse-nio-8443-Acceptor] latch=1
2019-09-19 08:22:58.764 DEBUG 1 --- [o-8443-Acceptor] o.apache.tomcat.util.threads.LimitLatch  : Counting up[https-jsse-nio-8443-Acceptor] latch=2
2019-09-19 08:22:58.793 DEBUG 1 --- [nio-8443-exec-1] org.apache.tomcat.util.modeler.Registry …