Animesh245 / Employee-Management-System

MIT License
3 stars 0 forks source link

using methods of other service classes: circular dependency issue #3

Open Animesh245 opened 2 years ago

Animesh245 commented 2 years ago

/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:37385,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:/snap/intellij-idea-ultimate/380/plugins/java/lib/rt/debugger-agent.jar -Dfile.encoding=UTF-8 -classpath /home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes:/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Frontend/target/classes:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.7.2/spring-boot-starter-web-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter/2.7.2/spring-boot-starter-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.7.2/spring-boot-starter-logging-2.7.2.jar:/home/warrior245/.m2/repository/ch/qos/logback/logback-classic/1.2.11/logback-classic-1.2.11.jar:/home/warrior245/.m2/repository/ch/qos/logback/logback-core/1.2.11/logback-core-1.2.11.jar:/home/warrior245/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.17.2/log4j-to-slf4j-2.17.2.jar:/home/warrior245/.m2/repository/org/apache/logging/log4j/log4j-api/2.17.2/log4j-api-2.17.2.jar:/home/warrior245/.m2/repository/org/slf4j/jul-to-slf4j/1.7.36/jul-to-slf4j-1.7.36.jar:/home/warrior245/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/home/warrior245/.m2/repository/org/yaml/snakeyaml/1.30/snakeyaml-1.30.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.7.2/spring-boot-starter-json-2.7.2.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.13.3/jackson-databind-2.13.3.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.13.3/jackson-annotations-2.13.3.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.13.3/jackson-datatype-jdk8-2.13.3.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.13.3/jackson-datatype-jsr310-2.13.3.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.13.3/jackson-module-parameter-names-2.13.3.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.7.2/spring-boot-starter-tomcat-2.7.2.jar:/home/warrior245/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.65/tomcat-embed-core-9.0.65.jar:/home/warrior245/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.65/tomcat-embed-el-9.0.65.jar:/home/warrior245/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.65/tomcat-embed-websocket-9.0.65.jar:/home/warrior245/.m2/repository/org/springframework/spring-web/5.3.22/spring-web-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-beans/5.3.22/spring-beans-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-webmvc/5.3.22/spring-webmvc-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-aop/5.3.22/spring-aop-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-context/5.3.22/spring-context-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-expression/5.3.22/spring-expression-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-data-jpa/2.7.2/spring-boot-starter-data-jpa-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-aop/2.7.2/spring-boot-starter-aop-2.7.2.jar:/home/warrior245/.m2/repository/org/aspectj/aspectjweaver/1.9.7/aspectjweaver-1.9.7.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-starter-jdbc/2.7.2/spring-boot-starter-jdbc-2.7.2.jar:/home/warrior245/.m2/repository/com/zaxxer/HikariCP/4.0.3/HikariCP-4.0.3.jar:/home/warrior245/.m2/repository/org/springframework/spring-jdbc/5.3.22/spring-jdbc-5.3.22.jar:/home/warrior245/.m2/repository/jakarta/transaction/jakarta.transaction-api/1.3.3/jakarta.transaction-api-1.3.3.jar:/home/warrior245/.m2/repository/jakarta/persistence/jakarta.persistence-api/2.2.3/jakarta.persistence-api-2.2.3.jar:/home/warrior245/.m2/repository/org/hibernate/hibernate-core/5.6.10.Final/hibernate-core-5.6.10.Final.jar:/home/warrior245/.m2/repository/org/jboss/logging/jboss-logging/3.4.3.Final/jboss-logging-3.4.3.Final.jar:/home/warrior245/.m2/repository/net/bytebuddy/byte-buddy/1.12.12/byte-buddy-1.12.12.jar:/home/warrior245/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/home/warrior245/.m2/repository/org/jboss/jandex/2.4.2.Final/jandex-2.4.2.Final.jar:/home/warrior245/.m2/repository/com/fasterxml/classmate/1.5.1/classmate-1.5.1.jar:/home/warrior245/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.1.2.Final/hibernate-commons-annotations-5.1.2.Final.jar:/home/warrior245/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.3.6/jaxb-runtime-2.3.6.jar:/home/warrior245/.m2/repository/org/glassfish/jaxb/txw2/2.3.6/txw2-2.3.6.jar:/home/warrior245/.m2/repository/com/sun/istack/istack-commons-runtime/3.0.12/istack-commons-runtime-3.0.12.jar:/home/warrior245/.m2/repository/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar:/home/warrior245/.m2/repository/org/springframework/data/spring-data-jpa/2.7.2/spring-data-jpa-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/data/spring-data-commons/2.7.2/spring-data-commons-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/spring-orm/5.3.22/spring-orm-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-tx/5.3.22/spring-tx-5.3.22.jar:/home/warrior245/.m2/repository/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar:/home/warrior245/.m2/repository/org/springframework/spring-aspects/5.3.22/spring-aspects-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-devtools/2.7.2/spring-boot-devtools-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot/2.7.2/spring-boot-2.7.2.jar:/home/warrior245/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.7.2/spring-boot-autoconfigure-2.7.2.jar:/home/warrior245/.m2/repository/org/postgresql/postgresql/42.5.0/postgresql-42.5.0.jar:/home/warrior245/.m2/repository/org/checkerframework/checker-qual/3.5.0/checker-qual-3.5.0.jar:/home/warrior245/.m2/repository/org/springdoc/springdoc-openapi-ui/1.6.11/springdoc-openapi-ui-1.6.11.jar:/home/warrior245/.m2/repository/org/springdoc/springdoc-openapi-webmvc-core/1.6.11/springdoc-openapi-webmvc-core-1.6.11.jar:/home/warrior245/.m2/repository/org/springdoc/springdoc-openapi-common/1.6.11/springdoc-openapi-common-1.6.11.jar:/home/warrior245/.m2/repository/io/swagger/core/v3/swagger-core/2.2.2/swagger-core-2.2.2.jar:/home/warrior245/.m2/repository/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.13.3/jackson-dataformat-yaml-2.13.3.jar:/home/warrior245/.m2/repository/io/swagger/core/v3/swagger-annotations/2.2.2/swagger-annotations-2.2.2.jar:/home/warrior245/.m2/repository/io/swagger/core/v3/swagger-models/2.2.2/swagger-models-2.2.2.jar:/home/warrior245/.m2/repository/jakarta/validation/jakarta.validation-api/2.0.2/jakarta.validation-api-2.0.2.jar:/home/warrior245/.m2/repository/org/webjars/swagger-ui/4.14.0/swagger-ui-4.14.0.jar:/home/warrior245/.m2/repository/org/webjars/webjars-locator-core/0.50/webjars-locator-core-0.50.jar:/home/warrior245/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.13.3/jackson-core-2.13.3.jar:/home/warrior245/.m2/repository/io/github/classgraph/classgraph/4.8.149/classgraph-4.8.149.jar:/home/warrior245/.m2/repository/org/projectlombok/lombok/1.18.24/lombok-1.18.24.jar:/home/warrior245/.m2/repository/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar:/home/warrior245/.m2/repository/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar:/home/warrior245/.m2/repository/org/springframework/spring-core/5.3.22/spring-core-5.3.22.jar:/home/warrior245/.m2/repository/org/springframework/spring-jcl/5.3.22/spring-jcl-5.3.22.jar:/snap/intellij-idea-ultimate/380/lib/idea_rt.jar com.animesh245.backend.BackendApplication Connected to the target VM, address: '127.0.0.1:37385', transport: 'socket' 00:06:34.949 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@65ec6494

. _ _ /\ / '_ () \ \ \ \ ( ( )\ | ' | '| | ' \/ ` | \ \ \ \ \/ _)| |)| | | | | || (| | ) ) ) ) ' |__| .|| ||| |\, | / / / / =========|_|==============|__/=//// :: Spring Boot :: (v2.7.2)

2022-09-07 00:06:35.460 INFO 26585 --- [ restartedMain] c.animesh245.backend.BackendApplication : Starting BackendApplication using Java 11.0.16 on warrior245 with PID 26585 (/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes started by warrior245 in /home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api) 2022-09-07 00:06:35.466 INFO 26585 --- [ restartedMain] c.animesh245.backend.BackendApplication : No active profile set, falling back to 1 default profile: "default" 2022-09-07 00:06:35.525 INFO 26585 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2022-09-07 00:06:35.526 INFO 26585 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2022-09-07 00:06:36.480 INFO 26585 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2022-09-07 00:06:36.580 INFO 26585 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 89 ms. Found 4 JPA repository interfaces. 2022-09-07 00:06:37.287 INFO 26585 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2022-09-07 00:06:37.297 INFO 26585 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2022-09-07 00:06:37.297 INFO 26585 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65] 2022-09-07 00:06:37.365 INFO 26585 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2022-09-07 00:06:37.365 INFO 26585 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1838 ms 2022-09-07 00:06:37.630 INFO 26585 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2022-09-07 00:06:37.684 INFO 26585 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.10.Final 2022-09-07 00:06:37.860 INFO 26585 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2022-09-07 00:06:37.955 INFO 26585 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2022-09-07 00:06:38.336 INFO 26585 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2022-09-07 00:06:38.347 INFO 26585 --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL95Dialect 2022-09-07 00:06:39.015 INFO 26585 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2022-09-07 00:06:39.021 INFO 26585 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2022-09-07 00:06:39.399 WARN 26585 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'departmentControllerImpl' defined in file [/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes/com/animesh245/backend/controller/implementation/DepartmentControllerImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'departmentServiceImpl' defined in file [/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes/com/animesh245/backend/service/implementation/DepartmentServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 2; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'employeeServiceImpl' defined in file [/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes/com/animesh245/backend/service/implementation/EmployeeServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'departmentServiceImpl': Requested bean is currently in creation: Is there an unresolvable circular reference? 2022-09-07 00:06:39.400 INFO 26585 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2022-09-07 00:06:39.402 INFO 26585 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2022-09-07 00:06:39.422 INFO 26585 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 2022-09-07 00:06:39.424 INFO 26585 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2022-09-07 00:06:39.437 INFO 26585 --- [ restartedMain] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2022-09-07 00:06:39.453 ERROR 26585 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

The dependencies of some of the beans in the application context form a cycle:

departmentControllerImpl defined in file [/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes/com/animesh245/backend/controller/implementation/DepartmentControllerImpl.class] ┌─────┐ | departmentServiceImpl defined in file [/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes/com/animesh245/backend/service/implementation/DepartmentServiceImpl.class] ↑ ↓ | employeeServiceImpl defined in file [/home/warrior245/Documents/Projects/SpringBoot_Tutorial_Projects/Employee_REST_Api/Backend/target/classes/com/animesh245/backend/service/implementation/EmployeeServiceImpl.class] └─────┘

Action:

Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.

Disconnected from the target VM, address: '127.0.0.1:37385', transport: 'socket'

Process finished with exit code 0

Animesh245 commented 2 years ago

use @ Lazy before parameter of a constructor. example:

private final EmployeeRepository employeeRepository;
private final DepartmentService departmentService;
private final ProjectService projectService;
private final FileService fileService;

public EmployeeServiceImpl(EmployeeRepository employeeRepository, @Lazy DepartmentService departmentService,@Lazy ProjectService projectService,@Lazy FileService fileService)
{
    this.employeeRepository = employeeRepository;
    this.departmentService = departmentService;
    this.projectService = projectService;
    this.fileService = fileService;
}