[SPRING] CDI가 비활성화 된 @ PostConstruct에 대한 Glassfish 4 검사
SPRINGCDI가 비활성화 된 @ PostConstruct에 대한 Glassfish 4 검사
Spring 어플의 집합을 위해 글래스 피쉬 3.1.2.2에서 글래스 피시 4.1로 업그레이드하고 있습니다. @Inject 어노테이션을 처리하기 위해 Spring을 사용하기 때문에 다음 명령을 사용하여 Glassfish의 CDI를 비활성화했습니다.
asadmin set configs.config.server-config.cdi-service.enable-implicit-cdi=false
그래도 응용 프로그램 중 하나를 배포하면 다음과 같은 오류 메시지가 나타납니다.
The lifecycle method [something] must not throw a checked exception.
Related annotation information: annotation [@javax.annotation.PostConstruct()]
on annotated element [public void com.something.MyClass.something() throws
java.io.IOException] of type [METHOD]. Please see server.log for more details.
문제의 클래스는 구현하려고하는 애플리케이 션의 구현이없는 추상 클래스이며 클래스 경로에있는 것입니다.
글래스 피시가 왜 CDI를 비활성화했을 때 @PostConstruct를 확인합니까? 왜 GlassFish는 @PostConstruct를 bean이 될 수없는 것으로 검증하고 있습니까? 글래스 피시가 내가 Spring을 사용하고있는 것에 방해를하지 않게하려면 어떻게해야합니까?
해결법
-
==============================
1.Annotation @PostConstruct는 모든 의존성 주입 메커니즘에서 사용되는 일반적인 주석이다. Javadoc은 인터셉터 내에서 사용되지 않는 한 반환 유형이 void이고 검사 예외를 throw하지 않는 메소드에 넣어야한다고 명시 적으로 명시합니다.
Annotation @PostConstruct는 모든 의존성 주입 메커니즘에서 사용되는 일반적인 주석이다. Javadoc은 인터셉터 내에서 사용되지 않는 한 반환 유형이 void이고 검사 예외를 throw하지 않는 메소드에 넣어야한다고 명시 적으로 명시합니다.
Spring은 post-construct 메소드에 대한 체크 예외를 처리 할 수있는 방법이 없으므로 이상하게 여겨진다. 그러나이 요구 사항은 검증 일 뿐이고 무시 될 수 있으므로 Spring은 검사 된 예외를 무시하고 Glassfish는 예외 일 수 없습니다. CDI 또는 다른 메커니즘 (EJB, ...)에서 사용되지 않더라도 모든 클래스를 검사하고 유효성을 검사하는 불필요한 Glassfish 기능이있을 수 있습니다.
가장 좋은 방법은 확인 된 예외를 제거하여 코드를 문서와 정렬하고 이식성있게 만드는 것입니다.
-
==============================
2.metadata-complete = "true"와 함께 web.xml을 추가하여이 문제를 먼저 해결할 수 있습니다. 다음으로 컨텍스트가 웹 루트 디렉토리 / WEB-INF /에 있는지 확인해야합니다.
metadata-complete = "true"와 함께 web.xml을 추가하여이 문제를 먼저 해결할 수 있습니다. 다음으로 컨텍스트가 웹 루트 디렉토리 / WEB-INF /에 있는지 확인해야합니다.
이 glassfish로 모든 @PostConstructSpring 종속성을로드 할 수 있습니다.
내 의견으로는 해결할 것이 많습니다.
from https://stackoverflow.com/questions/35411854/glassfish-4-scans-for-postconstruct-with-cdi-disabled by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring MVC로 URL의 유효성을 검사하는 가장 좋은 방법은? (0) | 2019.04.27 |
---|---|
[SPRING] 스프링 데이터에서 AND 및 여러 OR 매개 변수 방법을 수행하는 방법 JPA (0) | 2019.04.27 |
[SPRING] 봄 부팅시 자동 로깅 구성 사용 안 함 (0) | 2019.04.27 |
[SPRING] 최대 절전 모드 : createQuery가 활성 트랜잭션없이 유효하지 않습니다. (0) | 2019.04.27 |
[SPRING] 더 많은 데이터 소스를 가진 spring jpa hibernate (0) | 2019.04.27 |