Hmm Here im not sure but maybe remove it from your web.xml Le 9 nov. 2013 13:52, "aljesco" <[email protected]> a écrit :
> Nov 09, 2013 2:49:31 PM org.apache.catalina.core.StandardContext > listenerStart > SEVERE: Exception sending context initialized event to listener instance > of class org.apache.webbeans.servlet.WebBeansConfigurationListener > java.lang.NullPointerException > at > org.apache.webbeans.web.lifecycle.WebContainerLifecycle.afterStartApplication(WebContainerLifecycle.java:125) > at > org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:132) > at > org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:89) > at > org.apache.webbeans.servlet.WebBeansConfigurationListener.contextInitialized(WebBeansConfigurationListener.java:85) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) > at > org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1120) > at > org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1678) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > > > > 2013/11/9 Romain Manni-Bucau <[email protected]> > >> So remove openwebbeans jar from the webapp to put them in tomcat libs >> Le 9 nov. 2013 13:43, "aljesco" <[email protected]> a écrit : >> >> Yes >>> >>> >>> 2013/11/9 Romain Manni-Bucau <[email protected]> >>> >>>> You kept owb in web-inf/lib? >>>> Le 9 nov. 2013 13:22, "aljesco" <[email protected]> a écrit : >>>> >>>> I added >>>>> <Listener >>>>> className="org.apache.webbeans.web.tomcat.ContextLifecycleListener" /> >>>>> into server.xml files. >>>>> After that Tomcat throwed several ClassNotFoundExceptions because it >>>>> couldn't find OWB libs. I >>>>> put openwebbeans-impl-1.2.0.jar, openwebbeans-spi-1.2.0.jar, >>>>> openwebbeans-tomcat7-1.2.0.jar >>>>> and openwebbeans-web-1.2.0.jar into lib folder. Now Tomcat fails to start >>>>> with exception >>>>> ==== >>>>> Caused by: java.lang.RuntimeException: java.lang.ClassCastException: >>>>> Cannot cast org.apache.webbeans.service.DefaultLoaderService to >>>>> org.apache.webbeans.spi.LoaderService >>>>> at >>>>> org.apache.webbeans.web.tomcat.ContextLifecycleListener.containerEvent(ContextLifecycleListener.java:200) >>>>> at >>>>> org.apache.catalina.core.ContainerBase.fireContainerEvent(ContainerBase.java:1398) >>>>> at >>>>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4944) >>>>> at >>>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) >>>>> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >>>>> ... 10 more >>>>> Caused by: java.lang.ClassCastException: Cannot cast >>>>> org.apache.webbeans.service.DefaultLoaderService to >>>>> org.apache.webbeans.spi.LoaderService >>>>> at java.lang.Class.cast(Class.java:3094) >>>>> at >>>>> org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:121) >>>>> at >>>>> org.apache.webbeans.config.WebBeansContext.<init>(WebBeansContext.java:98) >>>>> at >>>>> org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:54) >>>>> at >>>>> org.apache.webbeans.corespi.DefaultSingletonService.get(DefaultSingletonService.java:28) >>>>> at >>>>> org.apache.webbeans.config.WebBeansFinder.getSingletonInstance(WebBeansFinder.java:51) >>>>> at >>>>> org.apache.webbeans.config.WebBeansContext.getInstance(WebBeansContext.java:164) >>>>> at >>>>> org.apache.webbeans.config.WebBeansContext.currentInstance(WebBeansContext.java:182) >>>>> at >>>>> org.apache.webbeans.web.tomcat.TomcatUtil.inject(TomcatUtil.java:38) >>>>> at >>>>> org.apache.webbeans.web.tomcat.ContextLifecycleListener.containerEvent(ContextLifecycleListener.java:182) >>>>> ... 14 more >>>>> ==== >>>>> What I'm doing wrong? >>>>> >>>>> >>>>> 2013/11/9 Romain Manni-Bucau <[email protected]> >>>>> >>>>>> this one as tomcat listener >>>>>> https://github.com/apache/openwebbeans/blob/trunk/webbeans-tomcat7/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java >>>>>> Le 9 nov. 2013 12:36, "aljesco" <[email protected]> a écrit : >>>>>> >>>>>> No, I didn't set it. What class should I set up as a listener? >>>>>>> >>>>>>> Do I need this lines in web.xml? >>>>>>> >>>>>>> <listener> >>>>>>> >>>>>>> <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class> >>>>>>> </listener> >>>>>>> <resource-env-ref> >>>>>>> <resource-env-ref-name>BeanManager</resource-env-ref-name> >>>>>>> >>>>>>> <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type> >>>>>>> </resource-env-ref> >>>>>>> >>>>>>> >>>>>>> 2013/11/9 Romain Manni-Bucau <[email protected]> >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> Api jars are geronimo*spec ones (jcdi and atinject IIRC) >>>>>>>> >>>>>>>> In tomcat you need tomcat owb listener to get servlet injection, >>>>>>>> did you set it? >>>>>>>> Le 9 nov. 2013 12:13, "aljesco" <[email protected]> a écrit : >>>>>>>> >>>>>>>> Hello everyone, >>>>>>>>> >>>>>>>>> I've tried to get OWB working for about several hours on Tomcat 7 >>>>>>>>> and afterall I got really confused. >>>>>>>>> I'd be very thankful if someone can clarify some points with OWB. >>>>>>>>> >>>>>>>>> So, I'm developing a test project with just one servlet >>>>>>>>> >>>>>>>>> ==== >>>>>>>>> @WebServlet(urlPatterns="/test") >>>>>>>>> public class extends HttpServlet { >>>>>>>>> >>>>>>>>> private @Inject MyService s; >>>>>>>>> @Override >>>>>>>>> protected void doGet(HttpServletRequest req, HttpServletResponse >>>>>>>>> resp) throws ServletException, IOException { >>>>>>>>> >>>>>>>>> WebBeansContext currentInstance = >>>>>>>>> WebBeansContext.currentInstance(); >>>>>>>>> MyService s2 = currentInstance.get(MyService.class); >>>>>>>>> resp.getWriter().println(s); >>>>>>>>> resp.getWriter().println("s2: " + s2.getHash()); >>>>>>>>> } >>>>>>>>> } >>>>>>>>> ==== >>>>>>>>> >>>>>>>>> it tries get injected MyService instance which is POJO: >>>>>>>>> >>>>>>>>> ==== >>>>>>>>> public class MyService { >>>>>>>>> public MyService() { >>>>>>>>> } >>>>>>>>> public String getHash() { >>>>>>>>> return new Random().nextInt() + ""; >>>>>>>>> } >>>>>>>>> } >>>>>>>>> ==== >>>>>>>>> >>>>>>>>> here is WEB-INF/web.xml: >>>>>>>>> >>>>>>>>> ==== >>>>>>>>> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" >>>>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>>>>>>> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee >>>>>>>>> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> >>>>>>>>> <display-name>Archetype Created Web Application</display-name> >>>>>>>>> <listener> >>>>>>>>> >>>>>>>>> <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class> >>>>>>>>> </listener> >>>>>>>>> <resource-env-ref> >>>>>>>>> <resource-env-ref-name>BeanManager</resource-env-ref-name> >>>>>>>>> >>>>>>>>> <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type> >>>>>>>>> </resource-env-ref> >>>>>>>>> </web-app> >>>>>>>>> ==== >>>>>>>>> >>>>>>>>> libs in WEB-INF/libs: >>>>>>>>> >>>>>>>>> openwebbeans-ee-common-1.2.0.jar >>>>>>>>> openwebbeans-el22-1.2.0.jar >>>>>>>>> openwebbeans-impl-1.2.0.jar >>>>>>>>> openwebbeans-resource-1.2.0.jar >>>>>>>>> openwebbeans-spi-1.2.0.jar >>>>>>>>> openwebbeans-tomcat7-1.2.0.jar >>>>>>>>> openwebbeans-web-1.2.0.jar >>>>>>>>> xbean-asm-shaded-3.13.jar >>>>>>>>> xbean-finder-shaded-3.13.jar >>>>>>>>> >>>>>>>>> The first question is about CDI implementation library. >>>>>>>>> If I try to deploy webapp as it is, the Tomcat will fail with next >>>>>>>>> exception: java.lang.NoClassDefFoundError: >>>>>>>>> javax/enterprise/context/spi/Contextual >>>>>>>>> I couldn't find OWB library which provides such class. I only >>>>>>>>> grabbed javaee-api-6.0-5-tomcat.jar from TomEE and placed in under >>>>>>>>> Tomcat 7 >>>>>>>>> lib/ folder. >>>>>>>>> What is a proper way to solve this problem? Where should I get >>>>>>>>> javax.enterprise.context.* library? >>>>>>>>> >>>>>>>>> The second question is about CDI itself. >>>>>>>>> After successful deploying (with javaee-api-6.0-5-tomcat.jar in >>>>>>>>> lib/) I accessed my servlet by >>>>>>>>> http://localhost:8080/testproject/test and got this responce: >>>>>>>>> ==== >>>>>>>>> >>>>>>>>> null >>>>>>>>> s2: 1064451662 >>>>>>>>> >>>>>>>>> ==== >>>>>>>>> >>>>>>>>> Why WebBeansContext.currentInstance().get(MyService.class) returns >>>>>>>>> a proper instance of MyService class and fails to inject it into >>>>>>>>> private >>>>>>>>> @Inject MyService s? >>>>>>>>> >>>>>>>>> >>>>>>> >>>>> >>> >
