TomEE + 1.5.1을 실행하고 CDI 확장을 만들려고합니다. 나는 javax.enterprise.inject.spi.Extension 구현하는 클래스를 생성하고 클래스 자체는 간단하다/파일 META-INF/서비스로 javax.enterprise.inject.spi.ExtensionTomEE : CDI 확장자 - 공급자를 찾을 수 없음 오류
를 그 클래스의 이름을 넣어 : TomEE에 배포하는 방법에
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
public class ScanAllClassesExtension implements Extension {
private Set<Class<?>> allClasses;
public void handleProcessAnnotatedTypeEvent(@Observes ProcessAnnotatedType<?> processAnnotatedTypeEvent) throws Exception {
Class<?> type = processAnnotatedTypeEvent.getAnnotatedType().getJavaClass();
getAllClasses().add(type);
}
public Set<Class<?>> getAllClasses() {
if (allClasses == null) {
allClasses = new HashSet<Class<?>>();
}
return allClasses;
}
}
난이 에러를 가지고 :
java.util.ServiceConfigurationError: javax.enterprise.inject.spi.Extension: Provider test.extensions.ScanAllClassesExtension not found
이 오류가 발생하여 ClassNotFoundException가 OpenEJB를 디버깅하는 반면에, 그러나 바로 경로 클래스 로더의 URL 목록에 있습니다.
나는 이런 일이 왜 아무 단서와 나는 누군가가 나를 도울 수 있기를 바랍니다.