2016-04-07 15 views
0

Bir programlayıcı oluştururken CDI enjeksiyonunu kullanmanın imkansız olduğunu buldum, bazı araştırmalardan sonra API deltaSpike'ın zamanlayıcı modülünü kullanarak ilginç bir çözüm buldum. Ben resmi belgelerinde açıklanan tüm adımları takipApache deltaSpike zamanlayıcı Modülünü Entegrasyon Modülü

yüzden bir bu özel durum benim jboss Sunucu başlamak benim pom.xml

<dependencyManagement> 
    <dependencies> 

     <dependency> 
      <groupId>org.apache.deltaspike.distribution</groupId> 
      <artifactId>distributions-bom</artifactId> 
      <version>${deltaspike.version}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

    <dependency> 
     <groupId>org.quartz-scheduler</groupId> 
     <artifactId>quartz</artifactId> 
     <version>2.2.1</version> 
    </dependency> 



    <dependency> 
     <groupId>org.apache.deltaspike.cdictrl</groupId> 
     <artifactId>deltaspike-cdictrl-api</artifactId> 
     <version>${deltaspike.version}</version> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.weld.se</groupId> 
     <artifactId>weld-se</artifactId> 
     <version>2.3.3.Final</version> 
     <scope>runtime</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.deltaspike.cdictrl</groupId> 
     <artifactId>deltaspike-cdictrl-weld</artifactId> 
     <version>${deltaspike.version}</version> 
    </dependency> 




    <dependency> 
     <groupId>org.apache.deltaspike.core</groupId> 
     <artifactId>deltaspike-core-api</artifactId> 
     <version>${deltaspike.version}</version> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.deltaspike.core</groupId> 
     <artifactId>deltaspike-core-impl</artifactId> 
     <version>${deltaspike.version}</version> 
     <scope>runtime</scope> 
    </dependency> 



    <dependency> 
     <groupId>org.apache.deltaspike.modules</groupId> 
     <artifactId>deltaspike-scheduler-module-api</artifactId> 
     <version>${deltaspike.version}</version> 
     <scope>compile</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.deltaspike.modules</groupId> 
     <artifactId>deltaspike-scheduler-module-impl</artifactId> 
     <version>${deltaspike.version}</version> 
     <scope>runtime</scope> 
    </dependency> 

Ancak her zaman aşağıdaki depencies eklendi

javax.enterprise.event.ObserverException 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at java.lang.Class.newInstance(Unknown Source) 
at org.jboss.weld.util.reflection.SecureReflections$16.work(SecureReflections.java:343) 
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) 
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInstantiation(SecureReflectionAccess.java:173) 
at org.jboss.weld.util.reflection.SecureReflections.newInstance(SecureReflections.java:340) 
at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:33) 
at org.jboss.weld.injection.Exceptions.rethrowException(Exceptions.java:73) 
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:162) 
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:241) 
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:229) 
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:207) 
at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractContainerEvent.java:75) 
at org.jboss.weld.bootstrap.events.AbstractDefinitionContainerEvent.fire(AbstractDefinitionContainerEvent.java:46) 
at org.jboss.weld.bootstrap.events.BeforeBeanDiscoveryImpl.fire(BeforeBeanDiscoveryImpl.java:46) 
at org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:322) 
at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:81) 
at org.jboss.as.weld.services.WeldService.start(WeldService.java:76) 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) 
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
    Caused by: java.lang.AbstractMethodError 
at org.apache.deltaspike.core.api.config.ConfigResolver.getAllProperties(ConfigResolver.java:383) 
at org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension.init(ExcludeExtension.java:98) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:264) 
at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52) 
at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:137) 
at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:260) 
at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:170) 
at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:51) 
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:154) 
... 14 more 
"}}}} 

Özel durum ile ilgili olarak, deltaspike yapılandırmasıyla ilgili bir şeyi kaçırdım, fakat stackoverflow veya başka bir web sitesinde hiçbir şey bulamadım, lütfen Yardım

+0

Hangi deltaspike sürümünü kullanıyorsunuz ve hangi konteynere dağıtıyorsunuz? –

+0

deltaSpike'ın kullandığı sürüm 1.6.0 ve Jboss 7.1 A.S'de konuşuyorum. – youssef

cevap

0

Sorun çözüldü, deltaSpike ile ilgilendi, çünkü bir CDI bağlamında Quartz'ı nasıl kullanacağımı anlamaya çalışıyordum.

Bazı araştırmalardan sonra, EJB Timer'ın benim için mükemmel olduğunu buldum çünkü JBOSS A.S'yi kullanıyoruz çünkü aslında bir ejb Container.