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 <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau
<http://fr.linkedin.com/in/rmannibucau>*
*Github: https://github.com/rmannibucau <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.
> |
>
>

Reply via email to