2013-03-18 59 views
0

我運行TomEE + 1.5.1並嘗試創建CDI擴展。我創建實施javax.enterprise.inject.spi.Extension一類,把這個類名到文件META-INF /服務/ javax.enterprise.inject.spi.ExtensionTomEE:CDI擴展 - 提供程序未找到錯誤

類本身很簡單:

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列表中。

我不知道爲什麼會發生這種情況,我希望任何人都可以幫助我。

回答