У меня есть TomEE + 1.5.1 и попытка создать расширение CDI. Я создал класс, реализующий javax.enterprise.inject.spi.Extension и положить, что имя класса в файл META-INF/услуги/javax.enterprise.inject.spi.ExtensionTomEE: CDI Extension - поставщик не найден Ошибка
Сам класс прост :
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;
}
}
на развертывание на TomEE я получил эту ошибку:
java.util.ServiceConfigurationError: javax.enterprise.inject.spi.Extension: Provider test.extensions.ScanAllClassesExtension not found
при отладке в OpenEJB эта ошибка вызвана ClassNotFoundException, но правильный путь находится в списке URL-адреса загрузчика классов.
У меня нет подсказки, почему это происходит, и я надеюсь, что кто-нибудь может мне помочь.