• 이슈 >>> 로컬에서 프로퍼티로 빠져있는 값을 읽어오지 못함
    (ex. )

public final static String DEMO = PropertyHandler.getProperty("DEMO");

 

  • 이유 
    1. 빌드 오류
    2. 타겟 밑에 web.xml 읽지 못함
       -  이번 에러는 이 중 두번째 이유였고,
    [ERROR][2018/12/04 15:18:06] c.a.u.PropertyHandler [getProperty:41] [PropertyHandler] Could not find property 'DOMAIN'. 와 같은 에러 발생

 

  • 해결

1. 해당 클래스에  BaseProcess 클래스를 상속 받음

2. 그래도 안되면 main문 안에 코드 입력(괄호는 프로젝트 위치)을 통해 로컬에서 해당 프로퍼티를 강제로 로드시킴

new ConfigLoader().loadConfigFile("C:/Users/Administrator/demo/target/demo-0.0.1-SNAPSHOT", "/WEB-INF/web.xml"); 

 


 

 

# 위와 같은 이슈는 저렇게 경로를 하드코딩하는거 말구
   Spring Properties Annotation으로 표현해서 해결 가능

 

@Configuration
@PropertySource("classpath:foo.properties")
public class PropertiesWithJavaConfig {
    //...
}

1. 위와 같은 클래스를 생성하여 위에 Configuration을 선언하고 PropertySource에는 프로퍼티의 경로를 적는다.

 

 

@Value( "${jdbc.url}" )
private String jdbcUrl;

2.  그럼 이렇게 @Value라는 간단한 표식으로 프로퍼티 사용 가능

 

 

 

 

'JAVA' 카테고리의 다른 글

로컬에서 maven package error  (0) 2019.04.06
  • 이슈

-. 로컬에서 메이븐 패키지를 하는데 아래와 같은 에러 발생

 

 

  • 원인

-. src에 main이 아닌 test 패키지에 테스트 코드 중 어떠한 것에서 에러가 남을 뜻 함.

-. <init> 옆의 클래스에서 에러 발생

 

 

 

  • 해결 

-. pom.xml 에 dependencies 밑에 prifile definition 목록들이 있는데, id가 local인 곳에 

   테스트는 스킵한다는 태그인 <maven.test.skip>ture</maven.test.skip> 을 삽입하여 해결

 

'JAVA' 카테고리의 다른 글

로컬에서 property 읽지 못 함  (0) 2019.04.10

-. 아파치의 스트링유틸스를 쓰고 싶은데 임포트에서 에러남. 메이븐이라면 pom에 의존 추가 할텐데 그레들이라.. 몰랐음. 써치 결과 빌드 그레들 디펜던시에 implementation 'org.apache.commons:commons-lang3:3.6' 추가하여 해결

 

 

-. 아파치 커먼에 validator는 찾아보니 빌드 그레들 디펜던시에 

compile 'commons-validator:commons-validator:1.4.1' 을 추가하여 해결

 

 

  • 여기서 의문은...... 디펜던시에 임플리먼테이션이랑 컴파일의 차이는 뭐고 어떨때 컴파일을 쓰는지.... --> 찾아볼 것!

  • 이슈 

-. 스프링부트 프로젝트에 그레들로 시작 시 런파일이 아래와 같이 비활성 화 됨. 

 

 

  • 시도 목록

-. 설정 - 빌드 - 컴파일 - 어노테이션 프로세서 - 엔에이블 어노테이션 프로세싱 체크

-. 그레들 버전 5.2.1 / 5.1.1 / 3.2.1 세개의 버전으로 실행

-. 설정 - 그레들에서 아래와 같이 세가지 형태로 실행

 

 

  • 해결

-. 인텔리제이 버전이 맞지 않음 (2018.1.4 에서 2018.3.5 로 다시 설치)

  • 아마 이게 스프링부트 버전 업그레이드되면서 실수 줄이게 할라구 오버라이딩 기본값을 false로 바꿔가지고 

  • 그 이후 버전부터는 프로퍼티나 yaml(?)에 따로 설정해줘야 되는 듯....

 

액션 : Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true gradle

  • lombok 플러그인 설치 여부 확인 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

2019-03-29 10:47:13.679 ERROR 34080 --- [           main] o.s.boot.SpringApplication               : Application run failed

 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity: com.example.demo.domain.ShopData

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1762) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE]

    at com.example.demo.DemoApplication.main(DemoApplication.java:12) [classes/:na]

Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com.example.demo.domain.ShopData

    at org.hibernate.cfg.InheritanceState.determineDefaultAccessType(InheritanceState.java:266) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.cfg.InheritanceState.getElementsToProcess(InheritanceState.java:211) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:778) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.processEntityHierarchies(AnnotationMetadataSourceProcessorImpl.java:250) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.processEntityHierarchies(MetadataBuildingProcess.java:231) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:274) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) ~[hibernate-core-5.3.7.Final.jar:5.3.7.Final]

    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1821) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1758) ~[spring-beans-5.1.5.RELEASE.jar:5.1.5.RELEASE]

    ... 15 common frames omitted

 


 

  • 클래스 위에

@NoArgsConstructor(access = AccessLevel.PROTECTED)  어노테이션과

 

필드로

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

 

ID 필드를 추가하여 해결

 

 

  • 참고 답변

https://stackoverflow.com/questions/4381290/hibernate-exception-org-hibernate-annotationexception-no-identifier-specified

 

hibernate exception: org.hibernate.AnnotationException: No identifier specified for entity: com..domain.idea.MAE_MFEView

Why am I getting this exception? package com.domain.idea; import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinC...

stackoverflow.com

 

+ Recent posts