Hello On Tue, Apr 27, 2010 at 11:29 PM, Jean-Louis MONTEIRO <jeano...@gmail.com> wrote: > Matthias, > > Not sure you got my short message on Twitter. > Anyway, the whole stuff is now working on my simple example.
that's great > > 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. I don't mind trying your openejb.war file (yeah I prefer openJPA :) ). I also don't mind applying the patch locally on my machine. > > Then, according to the community, i can commit Gurkan's patch and fix > the small issue. +1 -Matthias > > 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 >> > -- Matthias Wessendorf blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf twitter: http://twitter.com/mwessendorf