2013-03-18 4 views
0

У меня есть 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-адреса загрузчика классов.

У меня нет подсказки, почему это происходит, и я надеюсь, что кто-нибудь может мне помочь.

ответ

Смежные вопросы