Matthias, Not sure you got my short message on Twitter. Anyway, the whole stuff is now working on my simple example.
I gonna try to deploy a more complex application using stateless, stateful, CDI managed beans, JSF 2, ... Actually, it seems to me i don't get the same stateful reference in my @ConversationScope bean, leading to some unpredictable behaviors. BTW, i have a set of pending changes in OpenEJB (JPA 2.0 support, DynamicDataSource, Gurkan's patch, hibernate profile activated). So i can push an OpenEJB webapp (with OpenJPA if you prefer) to my people.apache.org. Even if it's development binaries, you can give it a try. Then, according to the community, i can commit Gurkan's patch and fix the small issue. WDYT? Jean-Louis 2010/4/27 Matthias Wessendorf <mat...@apache.org>: > w00t! great news guys! > > @JEan-Louis: Can you commit the bits, or share the "new" diff to trunk > in a patch ? > > Thanks! > Matthias > > On Tue, Apr 27, 2010 at 5:59 PM, Gurkan Erdogdu <gurkanerdo...@yahoo.com> > wrote: >> Great work! >> >> One thing is that my patch may not be correct in some regard, because I did >> not do so much testing :) >> >> Thanks; >> >> >> --Gurkan >> >> >> ________________________________ >> From: Jean-Louis MONTEIRO <jeano...@gmail.com> >> To: dev@openwebbeans.apache.org >> Sent: Tue, April 27, 2010 6:34:45 PM >> Subject: Re: @EJB in Tomcat 6.0.14 and Gurkan's OWB/OEJB patch >> >> Hey guys, >> >> I finally got it working with a JSF 2 sample using OpenEJB, >> OpenWebBeans, MyFaces, and Hibernate (JPA 2). >> >> My sample runs fine but a far more simple example doesn't work. >> It's just a simple example involving a servlet with a @EJB. >> The stacktrace is available here http://pastebin.com/Y2LUszsM >> >> I seems that Gurkan's patch is breaking something. I need to check it >> again, but i'm quite sure it worked before. >> >> Any idea? >> >> Jean-Louis >> >> >> 2010/4/27 Matthias Wessendorf <mat...@apache.org>: >>> I see, but that shouldn't make a big difference :-) >>> >>> The important part is the same: >>> -OpenEJB trunk(3.1.3-SNAP) + your patch :-) >>> >>> So I filed OWB-362 to not forget about it. >>> >>> -Matthias >>> >>> >>> On Tue, Apr 27, 2010 at 7:28 AM, Gurkan Erdogdu <gurkanerdo...@yahoo.com> >>> wrote: >>>> Matthias; >>>> >>>> I used Tomcat 6.0.26 and OpenEJB 3.1.3-SNAPSHOT. >>>> >>>> Thanks; >>>> >>>> >>>> --Gurkan >>>> >>>> >>>> ________________________________ >>>> From: Matthias Wessendorf <mat...@apache.org> >>>> To: dev@openwebbeans.apache.org >>>> Sent: Mon, April 26, 2010 11:38:25 PM >>>> Subject: Re: @EJB in Tomcat 6.0.14 and Gurkan's OWB/OEJB patch >>>> >>>> Hi, >>>> >>>> I just tried that again (fresh 6.014 TC installation + the patches >>>> from Gurkan on OpenEJB trunk). >>>> I simply want to deploy the the "jsf" example from OpenEJB (the >>>> 299/330 APIs I marked as "provided"), >>>> after I apply this patch: >>>> https://issues.apache.org/jira/browse/OPENEJB-1264 >>>> >>>> * Behavior: >>>> >>>> -case: JSF/EJB >>>> >>>> @ManagedBean/@RequestScoped (the JSF one) >>>> work fine with @EJB >>>> >>>> -case: 299/330 and EJB >>>> >>>> The @Named and CDI's @RequestScoped work (bean look-up is fine) >>>> Also, dependency injection works fine, IF I use @Inject for any >>>> injection, other than an >>>> EJB (statefull/stateless). >>>> >>>> simple interface + implementation => OK >>>> >>>> as soon as the implementation has @Stateless, I get the below exception.. >>>> >>>> IMO it looks like some issue with the proxy (invocation). See below. >>>> Has one seen this before? >>>> >>>> @Gurkan: >>>> What was your Tomcat version that you used ? >>>> You are using trunk with V3 of this patch: >>>> https://issues.apache.org/jira/browse/OPENEJB-1257 >>>> >>>> right ? >>>> >>>> ============================================================================== >>>> >>>> SEVERE: An exception occurred >>>> javax.faces.el.EvaluationException: javax.el.ELException: >>>> /calculator.xhtml at line 39 and column 64 action="#{calculator.add}": >>>> java.lang.reflect.InvocationTargetException >>>> at >>>> javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:96) >>>> at >>>> org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:100) >>>> at javax.faces.component.UICommand.broadcast(UICommand.java:120) >>>> at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:890) >>>> at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:234) >>>> at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1202) >>>> at >>>> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:623) >>>> at >>>> org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:35) >>>> at >>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:143) >>>> at >>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:93) >>>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>> at >>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >>>> at >>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) >>>> at >>>> org.apache.openejb.tomcat.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) >>>> at >>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >>>> at >>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >>>> at >>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) >>>> at >>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) >>>> at >>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584) >>>> at >>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >>>> at java.lang.Thread.run(Thread.java:619) >>>> Caused by: javax.el.ELException: /calculator.xhtml at line 39 and >>>> column 64 action="#{calculator.add}": >>>> java.lang.reflect.InvocationTargetException >>>> at >>>> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:95) >>>> at >>>> javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:88) >>>> ... 23 more >>>> Caused by: java.lang.reflect.InvocationTargetException >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>> at >>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler.invoke(EjbBeanProxyHandler.java:151) >>>> at >>>> org.superbiz.jsf.Calculator_$$_javassist_16.add(Calculator_$$_javassist_16.java) >>>> at org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:58) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>> at >>>> org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:265) >>>> at >>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:78) >>>> at >>>> org.superbiz.jsf.CalculatorBean_$$_javassist_15.add(CalculatorBean_$$_javassist_15.java) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>> at org.apache.el.parser.AstValue.invoke(AstValue.java:131) >>>> at >>>> org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) >>>> at >>>> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83) >>>> ... 24 more >>>> Caused by: java.lang.NullPointerException >>>> at $Proxy62.add(Unknown Source) >>>> ... 45 more >>>> Apr 26, 2010 9:51:42 PM >>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler hashCode >>>> WARNING: Calling method on proxy is restricted except >>>> Object.toString(), but current method is Object.hashCode >>>> Apr 26, 2010 9:51:42 PM >>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler hashCode >>>> WARNING: Calling method on proxy is restricted except >>>> Object.toString(), but current method is Object.hashCode >>>> Apr 26, 2010 9:51:42 PM >>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler hashCode >>>> WARNING: Calling method on proxy is restricted except >>>> Object.toString(), but current method is Object.hashCode >>>> >>>> >>>> >>>> >>>> >>>> On Sun, Apr 25, 2010 at 10:40 PM, Matthias Wessendorf <mat...@apache.org> >>>> wrote: >>>>> good idea, but than I get: >>>>> >>>>> Caused by: java.lang.reflect.InvocationTargetException >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>> at >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>> at >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>>> at >>>>> org.apache.webbeans.ejb.common.proxy.EjbBeanProxyHandler.invoke(EjbBeanProxyHandler.java:151) >>>>> at >>>>> org.superbiz.jsf.Calculator_$$_javassist_15.add(Calculator_$$_javassist_15.java) >>>>> at org.superbiz.jsf.CalculatorBean.add(CalculatorBean.java:55) >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>> at >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>> at >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>>> at >>>>> org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:265) >>>>> at >>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:78) >>>>> at >>>>> org.superbiz.jsf.CalculatorBean_$$_javassist_14.add(CalculatorBean_$$_javassist_14.java) >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>> at >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>> at >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>>> at org.apache.el.parser.AstValue.invoke(AstValue.java:131) >>>>> at >>>>> org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) >>>>> at >>>>> org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83) >>>>> ... 24 more >>>>> >>>>> >>>>> On Sun, Apr 25, 2010 at 10:08 PM, Gurkan Erdogdu >>>>> <cgurkanerdo...@gmail.com> wrote: >>>>>> How you use @EJB? Instead of using @EJB, you can directly inject EJBs >>>>>> using >>>>>> @Inject annotation via Local interface of the EJBs. >>>>>> >>>>>> Look at http://openejb.apache.org/3.0/jndi-names.html for jndi naming. >>>>>> >>>>>> 2010/4/25 Matthias Wessendorf <mat...@apache.org> >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I am on TC 6_0_14, combined w/ Gurkan's cool patch. When I have a CDI >>>>>>> bean: >>>>>>> @Named("calculator") >>>>>>> @RequestScoped >>>>>>> public class CalculatorBean { >>>>>>> ... >>>>>>> } >>>>>>> >>>>>>> with an @EJB injection, I am getting this ClassCastException: >>>>>>> >>>>>>> Caused by: java.lang.ClassCastException >>>>>>> at java.lang.Class.cast(Class.java:2990) >>>>>>> at >>>>>>> org.apache.webbeans.ejb.resource.ResourceInjectionProcessor.lookupFieldResource(ResourceInjectionProcessor.java:97) >>>>>>> at >>>>>>> org.apache.webbeans.ejb.resource.ResourceInjectionProcessor.getResourceReference(ResourceInjectionProcessor.java:64) >>>>>>> at >>>>>>> org.apache.webbeans.ejb.resource.ResourceFactory.getResourceReference(ResourceFactory.java:64) >>>>>>> at >>>>>>> org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService.getResourceReference(OpenEjbResourceInjectionService.java:50) >>>>>>> at >>>>>>> org.apache.webbeans.ejb.resource.OpenEjbResourceInjectionService.injectJavaEEResources(OpenEjbResourceInjectionService.java:78) >>>>>>> at >>>>>>> org.apache.webbeans.component.AbstractInjectionTargetBean.injectResources(AbstractInjectionTargetBean.java:391) >>>>>>> at >>>>>>> org.apache.webbeans.portable.creation.InjectionTargetProducer.inject(InjectionTargetProducer.java:76) >>>>>>> at >>>>>>> org.apache.webbeans.component.InjectionTargetWrapper.inject(InjectionTargetWrapper.java:80) >>>>>>> at >>>>>>> org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:157) >>>>>>> at >>>>>>> org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:219) >>>>>>> at >>>>>>> org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:182) >>>>>>> at >>>>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:117) >>>>>>> at >>>>>>> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:75) >>>>>>> at >>>>>>> org.superbiz.jsf.CalculatorBean_$$_javassist_5.getX(CalculatorBean_$$_javassist_5.java) >>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>> at >>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>>>>>> at >>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>>>>>> at java.lang.reflect.Method.invoke(Method.java:597) >>>>>>> at javax.el.BeanELResolver.getValue(BeanELResolver.java:62) >>>>>>> at >>>>>>> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) >>>>>>> at >>>>>>> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140) >>>>>>> at org.apache.el.parser.AstValue.getValue(AstValue.java:97) >>>>>>> at >>>>>>> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) >>>>>>> at >>>>>>> org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:84) >>>>>>> at >>>>>>> javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:243) >>>>>>> at javax.faces.component.UIOutput.getValue(UIOutput.java:71) >>>>>>> at javax.faces.component.UIInput.getValue(UIInput.java:120) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:349) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:297) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:149) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:64) >>>>>>> at >>>>>>> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:486) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:527) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:296) >>>>>>> at >>>>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:131) >>>>>>> at >>>>>>> javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:486) >>>>>>> at >>>>>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:618) >>>>>>> at >>>>>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:614) >>>>>>> at >>>>>>> javax.faces.component.UIComponent.encodeAll(UIComponent.java:614) >>>>>>> at >>>>>>> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1117) >>>>>>> at >>>>>>> org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:231) >>>>>>> at >>>>>>> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59) >>>>>>> at >>>>>>> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:122) >>>>>>> at >>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:207) >>>>>>> >>>>>>> >>>>>>> >>>>>>> When I comment out the @EJB all is fine. >>>>>>> >>>>>>> Has one seen this before ? >>>>>>> >>>>>>> -Matthias >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Matthias Wessendorf >>>>>>> >>>>>>> blog: http://matthiaswessendorf.wordpress.com/ >>>>>>> sessions: http://www.slideshare.net/mwessendorf >>>>>>> twitter: http://twitter.com/mwessendorf >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Gurkan Erdogdu >>>>>> http://gurkanerdogdu.blogspot.com >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Matthias Wessendorf >>>>> >>>>> blog: http://matthiaswessendorf.wordpress.com/ >>>>> sessions: http://www.slideshare.net/mwessendorf >>>>> twitter: http://twitter.com/mwessendorf >>>>> >>>> >>>> >>>> >>>> -- >>>> Matthias Wessendorf >>>> >>>> blog: http://matthiaswessendorf.wordpress.com/ >>>> sessions: http://www.slideshare.net/mwessendorf >>>> twitter: http://twitter.com/mwessendorf >>>> >>>> >>>> >>> >>> >>> >>> -- >>> Matthias Wessendorf >>> >>> blog: http://matthiaswessendorf.wordpress.com/ >>> sessions: http://www.slideshare.net/mwessendorf >>> twitter: http://twitter.com/mwessendorf >>> >> >> >> > > > > -- > Matthias Wessendorf > > blog: http://matthiaswessendorf.wordpress.com/ > sessions: http://www.slideshare.net/mwessendorf > twitter: http://twitter.com/mwessendorf >