Vulas启动失败,后端出现异常 [英] Vulas startup failed with an exception in the backend

查看:116
本文介绍了Vulas启动失败,后端出现异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在其中一台VM上运行 Vulas 泊坞窗设置.我遵循了指南.当我执行文档的Run阶段时,后端服务无法启动.我有以下例外情况,无法解释我的情况.

I am trying to run the Vulas docker setup on one of our VMs. I followed this guide. When I perform the Run stage of the documentation, the backend service fails to start. I have the following exception which explains me nothing.

#docker logs d04ea50241f7
2018-12-18 10:28:50.841 ERROR 9 --- [ost-startStop-1] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

org.postgresql.util.PSQLException: FATAL: role "root" does not exist
    at org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:712) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
    at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:215) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
    at org.postgresql.Driver.makeConnection(Driver.java:406) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
    at org.postgresql.Driver.connect(Driver.java:274) ~[postgresql-9.4.1208.jre7.jar!/:9.4.1208.jre7]
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:319) ~[tomcat-jdbc-8.5.32.jar!/:na]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]

2018-12-18 10:28:50.846 ERROR 9 --- [ost-startStop-1] o.s.b.c.embedded.tomcat.TomcatStarter    : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'dispatcherServletRegistration' defined in class path resource [org/springframework/boot/autoconfigure/web/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration.class]: Unsatisfied dependency expressed through method 'dispatcherServletRegistration' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hubIntegrationController' defined in URL [jar:file:/vulas/rest-backend.jar!/BOOT-INF/classes!/com/sap/psr/vulas/backend/rest/HubIntegrationController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationRepositoryImpl': Unsatisfied dependency expressed through field 'appRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationRepository': Cannot create inner bean '(inner bean)#5368a637' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#5368a637': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.exception.FlywaySqlException:
Unable to obtain database connection
------------------------------------
SQL State  : 28000
Error Code : 0
Message    : FATAL: role "root" does not exist

启动的Docker容器是

The docker containers that are up are

~/vulas/vulnerability-assessment-tool# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                            NAMES
05a90996f80d        docker_haproxy              "/docker-entrypoint.…"   7 minutes ago       Up 7 minutes        0.0.0.0:8034->7070/tcp, 0.0.0.0:8033->8080/tcp   vulas-os-haproxy
2877eeb8db76        docker_patch-lib-analyzer   "/vulas/run.sh"          7 minutes ago       Up 7 minutes        8080/tcp                                         vulas-os-patch-lib-analyzer
7d05307d9149        docker_frontend-bugs        "catalina.sh run"        7 minutes ago       Up 7 minutes        8080/tcp                                         vulas-os-frontend-bugs
84311f182d98        docker_rest-lib-utils       "/bin/sh -c 'java -D…"   7 minutes ago       Up 7 minutes        8092/tcp                                         vulas-os-rest-lib-utils
a55cc03b8ee8        docker_frontend-apps        "catalina.sh run"        7 minutes ago       Up 7 minutes        8080/tcp                                         vulas-os-frontend-apps
45a7210170e7        docker_postgresql           "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes        0.0.0.0:8032->5432/tcp                           vulas-os-postgresql

推荐答案

由于上述评论解决了该问题,因此我将发布答案以使该问题更具可见性.

since the above comment resolves the issue I will post an answer to give more visibility to this question.

您遇到的问题是由 .env 文件.在

The issue you faced was caused by a missing or changed user in the .env file used by Vulas. At this line we can see that Postgres, before creating the database, checks if both POSTGRES_USER and POSTGRES_PASSWORD are set. I can see that in your output the Postgres container started, so at some point in time in the .env file there were those environment variables set. Probably you changed or deleted the POSTGRES_USER. By doing so Vulas tried to connect to Postgres with a different user with respect to the one that created the database, thus failing to initialize the connection.

在第一次运行Vulas之前,必须修改.env文件.如果需要更改数据库的连接参数,则需要创建一个新参数.为了删除当前数据库并创建一个新数据库,在Vulas存储库的docker文件夹中输入命令docker-compose down -v.这将擦除每个卷.

It is mandatory to modify the .env file before running Vulas for the first time. If you need to change the connection's parameters to the database you need to create a new one. In order to drop the current DB and create a new one give the command docker-compose down -v while in the docker folder of Vulas' repository. This will erase each volume.

这篇关于Vulas启动失败,后端出现异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆