Play Framework with weld
paincraft May 17, 2014 6:32 AMhi all, i'm trying to use weld 2.2 container in Play Framework but i'm getting error:
ClassCastException: org.jboss.weld.bootstrap.WeldBootstrap cannot be cast to org.jboss.weld.bootstrap.api.CDI11Bootstrap
Below you will find my Global.java (wled crashes at container initialization):
public class Global extends GlobalSettings { private WeldContainer weld; @Override public void onStart(Application app) { weld = new Weld().initialize(); } @Override public void onStop(Application app) { shutdown(weld); } @Override public <A> A getControllerInstance(Class<A> clazz) { return weld.instance().select(clazz).get(); } private void shutdown(WeldContainer weld) { ShutdownManager shutdownManager = weld.instance().select(ShutdownManager.class).get(); shutdownManager.shutdown(); } }
Anyone could help ?
Update:
Same problem with Java SE CDI
public class RuntimeEnvironmentProducerTest { @Inject RuntimeEnvironmentProducer environment; public void runTest(){ if(environment != null){ System.out.println("environment ok"); }else{ System.out.println("environment not ok"); } } }
public class MainTests { public static void main(String[] args) throws IOException { Weld weld = new Weld(); WeldContainer container = weld.initialize(); RuntimeEnvironmentProducerTest runtimeEnvironmentProducerTest = container.instance().select(RuntimeEnvironmentProducerTest.class).get(); runtimeEnvironmentProducerTest .runTest(); weld.shutdown(); } }
Output: 12:28:12.939 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider 12:28:13.024 [main] INFO org.jboss.weld.Version - WELD-000900 1.1.13 (Final) Exception in thread "main" java.lang.ClassCastException: org.jboss.weld.bootstrap.WeldBootstrap cannot be cast to org.jboss.weld.bootstrap.api.CDI11Bootstrap at org.jboss.weld.environment.se.Weld.initialize(Weld.java:120) at producersTests.MainTests.main(MainTests.java:17)