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列表中。
我不知道爲什麼會發生這種情況,我希望任何人都可以幫助我。