0

I am trying to integrate our code with CDI and I am already using Tomcat 8.

I am facing some issues, please find exception logs below

"28-Jun-2016 09:47:18.752 INFO [localhost-startStop-1] org.jboss.weld.environment.tomcat.TomcatContainer.initialize WELD-ENV-001100: Tomcat 7+ detected, CDI injection will be available in Servlets, Filters and Listeners.
28-Jun-2016 09:47:19.190 SEVERE [Catalina-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/j2eeletestapp]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
                at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
                at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/j2eeletestapp]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
                ... 6 more
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type DirectoryService with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject private com.daimler.iap.paz.tsma.TomcatDirectoryAuthorizationService.ldiService
  at com.daimler.iap.paz.tsma.TomcatDirectoryAuthorizationService.ldiService(TomcatDirectoryAuthorizationService.java:0)

                at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:359)
                at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281)
                at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134)
                at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155)
                at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518)
                at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
                at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
                at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63)
                at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56)
                ... 4 more

28-Jun-2016 09:47:19.202 SEVERE [main] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:917)
                at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:769)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
                at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:925)
                at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
"

Is CDI compatible with Tomcat 8?

If yes please provide how to implement it with working example. Thanks in advance.

tarzanbappa
  • 4,629
  • 13
  • 66
  • 99
  • 1
    Welcome to SO! Please format your code/exceptions properly, and maybe add some code about how you try this integration which gives the error shown (by editing the question, not by commenting) – Stefan Hegny Jun 29 '16 at 07:01

1 Answers1

0

No, CDI is not working with Tomcat 8, at least not out-of-the-box. AFAIK you can get it to work by adding various dependencies (e.g. weld). See e.g. https://musingsinjava.wordpress.com/2014/11/02/enabling-jsf-2-2-and-cdi-1-2-on-tomcat-8/ and How to install and use CDI on Tomcat? .

Personally, I never managed to get it work, instead, I used Apache TomEE which has already the needed dependencies for CDI to work. There are many examples shown on the TomEE Website: http://tomee.apache.org/examples-trunk/index.html

Community
  • 1
  • 1
Raphael Roth
  • 23,651
  • 9
  • 69
  • 117
  • Thanks for the response. – user6526859 Jun 30 '16 at 02:55
  • I am using Weld dependencies. If you look the above exception I am facing some weld exception which cannot able to start the tomcat server – user6526859 Jun 30 '16 at 02:56
  • I am using Weld and tomcat both have there own EL Expression Library jars, these jars are conflicting with each other. How to make prioritize which jars we have to use in ANT – user6526859 Jun 30 '16 at 03:17