파란하늘의 지식창고
반응형

Spring Boot AuoConfiguration 개발할 때 spring.factories에 EnableAutoConfiguration를 등록하여 사용하는데 아래와 같은 에러가 발생하는 경우가 있다.

Caused by: java.io.FileNotFoundException: class path resource [.class] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:51)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:88)
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:75)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81)
	at org.springframework.boot.autoconfigure.AutoConfigurationSorter$AutoConfigurationClass.getAnnotationMetadata(AutoConfigurationSorter.java:241)
	... 51 common frames omitted

파일이 없다는데 문제는 그게 어떤 것인지 모른다..

보통 오타가 나면 해당 class 이름을 알려주는데 이건 그냥 .class가 없다고 하니 도대체 어디가 문제인지 찾을 길이 없다.

예를 들어 아래와 같이 설정했는데 위와 같은 에러가 발생했다.

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
net.bluesky.AConfiguration,\
net.bluesky.BConfiguration,\
net.bluesky.CConfiguration,\ 
net.bluesky.DConfiguration,\
net.bluesky.EConfiguration

"CConfiguration,\ " 에 문제가 있다.

,\ 뒤에 공백 문자가 있으면 해당 부분을 로드할 대상으로 보고 호출하다 에러가 발생한 것이다.

라인 변경 처리시 공백이 없는지 주의해야 한다.

반응형
profile

파란하늘의 지식창고

@Bluesky_

내용이 유익했다면 광고 배너를 클릭 해주세요