of course between owb-1.1.x and 1.2.x we switched from javassist to xbean-asm4-shaded. That jar would need to get exchanged. Otherwise it's just a drop in upgrade.
LieGrue, strub >________________________________ > From: Romain Manni-Bucau <[email protected]> >To: Ludovic Pénet <[email protected]> >Cc: "[email protected]" <[email protected]>; Mark >Struberg <[email protected]>; Niki Dokovski <[email protected]> >Sent: Saturday, 9 November 2013, 16:30 >Subject: Re: OWB on Tomcat 7 > > > >from owb side (only, not in tomee) drop and replace would work > > >in tomee we work with lib internals so we deeply depend on some versions. I >did the upgrade on trunk (soon released) > > >Romain Manni-Bucau >Twitter: @rmannibucau >Blog: http://rmannibucau.wordpress.com/ >LinkedIn: http://fr.linkedin.com/in/rmannibucau >Github: https://github.com/rmannibucau > > > > >2013/11/9 Ludovic Pénet <[email protected]> > >Maybe it is a lack of docs... >> >>I already use most of tomee components, but the "glue" (pom.xml, web.xml, >>etc.) is hard to find at first... >> >>I recently tried to use OWB 1.2 instead of 1.1.6 and the upgrade track is not >>very clear. It is not a drop-in replacement... >>My project uses latest myfaces 2.1, latest corresponding CODI and Tomcat 7. >> >>Well, maybe it is a curse of those great java projects. Great features, great >>performance, but steep learning curve... >> >> >>Best regards, >> >>Ludovic >> >> >> >>Romain Manni-Bucau <[email protected]> a écrit : >>tomee is a webapp and I know some tomcat users doing an overlay to deploy in >>a plain tomcat...works just fine too. >>> >>> >>>SCI is fine if you don't expect to be spec compliant (that's the case when >>>doing a tomcat + OWB) >>> >>> >>>Romain Manni-Bucau >>>Twitter: @rmannibucau >>>Blog: http://rmannibucau.wordpress.com/ >>>LinkedIn: http://fr.linkedin.com/in/rmannibucau >>>Github: https://github.com/rmannibucau >>> >>> >>> >>> >>>2013/11/9 Ludovic Pénet <[email protected]> >>> >>>Well, users of "standalone" tomcat, for good or bad reasons (corporate >>>policy,...) do not thank you... ;) >>>> >>>>Best regards, >>>> >>>>Ludovic >>>> >>>> >>>> >>>>Romain Manni-Bucau <[email protected]> a écrit : >>>>we could hack a ServletContainerInitializer but not sure the gain >>>>>compared to using tomee which will always be far more integrated "by >>>>>design" >>>>>Romain Manni-Bucau >>>>>Twitter: @rmannibucau >>>>>Blog: http://rmannibucau.wordpress.com/ >>>>>LinkedIn: http://fr.linkedin.com/in/rmannibucau >>>>>Github: https://github.com/rmannibucau >>>>> >>>>> >>>>> >>>>>2013/11/9 Mark Struberg <[email protected]>: >>>>> >>>>>Hi Niki! >>>>>> >>>>>>Karl and I did already work on improving our documentation at least ;) >>>>>> >>>>>>http://openwebbeans.apache.org/owbsetup_ee.html >>>>>> >>>>>>Please ping us if you find a failure! >>>>>> >>>>>>LieGrue, >>>>>>strub >>>>>> >>>>>> >>>>>>>>>>>>________________________________ >>>>>> >>>>>>From: Niki Dokovski <[email protected]> >>>>>>To: [email protected]; 'Mark Struberg' <[email protected]> >>>>>>Sent: Saturday, 9 November 2013, 15:01 >>>>>>Subject: RE: OWB on Tomcat 7 >>>>>> >>>>>>Hi Mark, >>>>>> >>>>>>From: Mark Struberg [mailto:[email protected]] >>>>>>Sent: Saturday, November 9, 2013 3:25 PM >>>>>>To: [email protected] >>>>>>Subject: Re: OWB on Tomcat 7 >>>>>> >>>>>>Hi folks! >>>>>> >>>>>>There are 2 different ways to work with OpenWebBeans and tomcat. >>>>>> >>>>>> >>>>>> >>>>>>A, your app is using CDI but you do not need the container to understand >>>>>>CDI. >>>>>>In that case just add owb-core jar + spi + xbean-asm4-shaded + owb-web >>>>>>into >>>>>>your WEB-INF/lib and add WebBeansConfigurationListener to your web.xml as >>>>>><listener> >>>>>> >>>>>>This works perfect, but be aware that there is no CDI injection in >>>>>>Servlets >>>>>>themself. You can of course use DeltaSpike BeanProvider to pick up >>>>>> >>>>>>B.) you need it fully integrated with all other EE technologies. In that >>>>>>case I suggest you use TomEE. This is basically tomcat7 + latest OWB + >>>>>>latest MyFaces + + +. And all that in a perfectly integrated and ready to >>>>>>use configuration. >>>>>> >>>>>>IMHO, there might be cases where you don’t need my faces or you just want >>>>>>to >>>>>>test the latest web container with the latest CDI. Current owb >>>>>>documentation >>>>>>is a bit confusing indeed and you need to look into the source code to >>>>>>understand what you need to configure and where. Which might be good >>>>>>exercise anyway. I like the “plugins” architecture of OWB but the >>>>>>integration with tomcat can be improved. The CDI RI did a bit better with >>>>>>the integration with Tomcat for now. (Yes you still need the servlet >>>>>>listener to bootstrap the CDI container) >>>>>> >>>>>>Do you folks have plans to reconsider current integrations points with >>>>>>tomcat? Are there any particular ideas for what can be imp roved on tomcat >>>>>>side to make the integration better? >>>>>> >>>>>>Cheers >>>>>>Niki >>>>>> >>>>>> >>>>>>LieGrue, >>>>>>strub >>>>>> >>>>>> >>>>>> >>>>>>>>>>>>________________________________ >>>>>> >>>>>>From: aljesco <[email protected]> >>>>>>To: [email protected] >>>>>>Sent: Saturday, 9 November 2013, 14:04 >>>>>>Subject: Re: OWB on Tomcat 7 >>>>>> >>>>>>Now web.xml contain only >>>>>><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> >>>>>></web-app> >>>>>> >>>>>>Ans that exception is still thrown. >>>>>> >>>>>>Here is lines from WebContainerLifecycle.java: >>>>>>124:ELAdaptor elAdaptor = >>>>>>getWebBeansContext().getService(ELAdaptor.class); >>>>>>125:ELResolver resolver = elAdaptor.getOwbELResolver(); >>>>>>NPE is being thrown on elAdaptor.getOwbELResolver(); , but why? >>>>>>ELAdaptor.class is in openwebbeans-spi-1.2.0.jar which is placed under lib >>>>>>in tomcat. I don't know what to do with all of this. >>>>>> >>>>>>2013/11/9 Romain Manni-Bucau <[email protected]> >>>>>> >>>>>>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< br />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? >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>-- >>>>Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté. >>>>| | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT. | >>> >>-- >>Envoyé de mon téléphone Android avec K-9 Mail. Excusez la brièveté. >>| | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT. | > > >
