[weld-dev] CODI and JBoss AS 6 final: ProjectStageActivationExtension didn't implement the Extension interface

Mark Struberg struberg at yahoo.de
Wed Jan 5 08:11:58 EST 2011


Hmm Beans are serialized all the day if you use a @ViewScoped context because the JSF ViewMap gets serialized/deserialized on every request. And the ViewScopeContext stores all the beans (+contextual instances, dependent objects, etc) in the ViewMap. I remember that this used to work in an earlier Weld version.


LieGrue,
strub


--- On Wed, 1/5/11, Pete Muir <pmuir at bleepbleep.org.uk> wrote:

> From: Pete Muir <pmuir at bleepbleep.org.uk>
> Subject: Re: [weld-dev] CODI and JBoss AS 6 final: ProjectStageActivationExtension didn't implement the Extension interface
> To: "Michael Schütz" <michaelschuetz83 at gmail.com>
> Cc: "Dan Allen" <dan.j.allen at gmail.com>, "Mark Struberg" <struberg at yahoo.de>, "weld-dev at lists.jboss.org" <weld-dev at lists.jboss.org>
> Date: Wednesday, January 5, 2011, 11:24 AM
> Weird, I wonder what is trying to
> serialize a bean object, there is no spec requirement for
> these to be serializable. Can you find out?
> 
> On 5 Jan 2011, at 09:03, Michael Schütz wrote:
> 
> > Dan,
> > thanks again.
> > 
> > Having MyFaces configured now.
> > 
> > Getting following error:
> > 09:58:21,068 INFO 
> [org.apache.myfaces.util.ExternalSpecifications] MyFaces
> Unified EL support enabled
> > 09:58:21,209 INFO 
> [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/myfaces-cdi-1.0.2-SNAPSHOT]]
> No state saving method defined, assuming default server
> state saving
> > 09:58:28,820 SCHWERWIEGEND
> [org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementHelper]
> Exiting serializeView - Could not serialize state:
> org.jboss.weld.bean.ManagedBean:
> java.io.NotSerializableException:
> org.jboss.weld.bean.ManagedBean
> >         at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> [:1.6.0_21]
> >         at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> [:1.6.0_21]
> >         at
> java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1246)
> [:1.6.0_21]
> >         at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [:1.6.0_21]
> >         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [:1.6.0_21]
> >         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [:1.6.0_21]
> >         at
> java.lang.reflect.Method.invoke(Method.java:597)
> [:1.6.0_21]
> >         at
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> [:1.6.0_21]
> >         at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> [:1.6.0_21]
> >         at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> [:1.6.0_21]
> >         at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> [:1.6.0_21]
> >         at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> [:1.6.0_21]
> >         at
> java.util.HashMap.writeObject(HashMap.java:1001)
> [:1.6.0_21]
> >         at
> sun.reflect.GeneratedMethodAccessor270.invoke(Unknown
> Source) [:1.6.0_21]
> > 
> > Does this relate to this post somehow:
> > http://seamframework.org/Community/CannotSerializeSessionAttributeOrgapachemyfacesviewfaceletsDefaultFaceletsStateManagementHelperSERIALIZEDVIEWForSession4F66763ACB1F009D75674C8225413B30JavaioNotSerializableExceptionOrgjbossweldbeanManagedBean
> > 
> > Project configuration or bug; Weld issue?
> > 
> > 
> > Thanks
> > Michael
> > 
> > 2011/1/4 Dan Allen <dan.j.allen at gmail.com>
> > Michael,
> > 
> > To use MyFaces on JBoss AS 6, you need to provide a
> hint as described here:
> > 
> > http://community.jboss.org/wiki/JSFonJBossAS6
> > 
> > Feel free to propagate that information.
> > 
> > -Dan
> > 
> > 
> > On Mon, Jan 3, 2011 at 6:48 PM, Michael Schütz <michaelschuetz83 at gmail.com>
> wrote:
> > This is interesting:
> > 
> > As recommended, I did only keep myfaces-extcdi-*
> jars.
> > 
> > This resulted in:
> > Error configuring application listener of class
> org.apache.webbeans.servlet.WebBeansConfigurationListener:
> java.lang.ClassNotFoundException:
> org.apache.webbeans.servlet.WebBeansConfigurationListener
> > Error configuring application listener of class
> org.apache.myfaces.webapp.StartupServletContextListener:
> java.lang.ClassNotFoundException:
> org.apache.myfaces.webapp.StartupServletContextListener
> > 
> > WebBeansConfigurationListener is contained in
> openwebbeans-web-1.0.0.jar and StartupServletContextListener
> in myfaces-impl-2.0.3.jar.
> > 
> > So I did comment out Listener in web.xml:
> >   <!-- 
> >   <listener>
>>    <listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class>
> >   </listener>
> > 
> >   <listener>
>>    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
> >   </listener>
> >   -->
> >   
> > After that server starts fine, using Mojarra 2.0.3.
> > Applications works partially as expected:
> > * JSF2 RequestScope does work as expected
> > * JSF2 ViewScope does _not_ work: it seems not to be
> initialized
> > * CODI Conversation and CODI Window-Scope do work as
> expected
> > * CODI ViewAccessScoped does _not_ work as expected:
> it has been initialized, but never expires
> > 
> > Not commenting out
> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
> causes:
> > class
> org.apache.myfaces.webapp.StartupServletContextListener:
> java.lang.ClassNotFoundException:
> org.apache.myfaces.webapp.StartupServletContextListener
> > 
> > This is quite strange, as this class is provided in
> myfaces-impl-2.0.1.jar shipped with AS. Seems to be a
> classloading issue - right?
> > 
> > So, are this still project configuration troubles:
> wrong Listener used etc? Or is it more likely to be a bug?
> > 
> > 
> > Thanks a lot
> > Michael
> > 
> > 2011/1/3 Mark Struberg <struberg at yahoo.de>
> > 
> > Hi Michael!
> > 
> > What definitely needs to be removed:
> > 
> > * geronimo-*_spec (all the specs are already included
> in JBOSS)
> > * jsr250-api
> > * openwebbeans*
> > * scannotation
> > * myfaces-impl
> > * myfaces-api
> > 
> > you should also be able to remove all the commons
> stuff...
> > 
> > 
> > The only things you need are basically the
> myfaces-extcdi-* jars.
> > 
> > LieGrue,
> > strub
> > 
> > 
> > --- On Mon, 1/3/11, Michael Schütz <michaelschuetz83 at gmail.com>
> wrote:
> > 
> > From: Michael Schütz <michaelschuetz83 at gmail.com>
> > Subject: Re: [weld-dev] CODI and JBoss AS 6 final:
> ProjectStageActivationExtension didn't implement the
> Extension interface
> > To: "Peter Muir" <pmuir at redhat.com>
> > Cc: "weld-dev at lists.jboss.org"
> <weld-dev at lists.jboss.org>
> > Date: Monday, January 3, 2011, 10:34 AM
> > 
> > Pete, I already did that: I did remove geronimo-jcdi
> and javassist.
> > 
> > Current error:
> > 11:19:22,486 ERROR
> [org.jboss.kernel.plugins.dependency.AbstractKernelController]
> Error installing to Start:
> name=vfs:///C:/01-Development/Projekte/CODI/jboss-6.0.0.Final/server/default/deploy/myfaces-cdi-1.0.2-SNAPSHOT.war_WeldBoo
> > 
> > n: WELD-001409 Ambiguous dependencies for type
> [MessageContext] with qualifiers [@Default] at injection
> point [[parameter 1] of [method] @Produces @Dependent @Jsf
> @Named public
> org.apache.myfaces.extensions.cdi.jsf.impl.message.Jsf
> > 
> > ssageFactory>, Instance<ELProvider>,
> Instance<ArgumentFilter>)]. Possible dependencies
> [[Producer Method [MessageContext] with qualifiers [@Any
> @Default] declared as [[method] @Produces @Dependent @Jsf
> @Named public org.apache.myfa
> > 
> > eateContext(MessageContext,
> Instance<MessageFactory>, Instance<ELProvider>,
> Instance<ArgumentFilter>)], Managed Bean [class
> org.apache.myfaces.extensions.cdi.message.impl.DefaultMessageContext]
> with qualifiers [@Any @Default]]]
> > 
> >         at
> org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:309)
> [:6.0.0.Final]
> > 
> > 
> > Please find screenshot attached with current
> WEB-INF/lib directory.
> > Are you saying removing everything but
> myfaces-extcdi-*.jar is expected to work?
> > 
> >        
> >        
> > Thanks
> > Michael       
> >        
> > 
> > 2011/1/3 Peter Muir <pmuir at redhat.com>
> > 
> > Do what I said and remove javassist.
> > 
> > --Pete Muirhttp://in.relation.to/Bloggers/Pete
> > 
> > On 2 Jan 2011, at 22:34, Michael Schütz <michaelschuetz83 at gmail.com>
> wrote:
> > 
> > 
> > Thanks Dan and Pete for your replys.
> > 
> > I did remove geronimo-jcdi and got:
> > 23:14:08,172 ERROR
> [org.jboss.kernel.plugins.dependency.AbstractKernelController]
> Error installing to Start:
> name=vfs:///C:/01-Development/Projekte/CODI/jboss-6.0.0.Final/server/default/deploy/myfaces-cdi-1.0.2-SNAPSHOT.war_WeldBootstrapBean
> state=Create: java.lang.ClassCastException: org.jboss.weld
> > 
> > 
> >
> .security.org$jboss$weld$bean-jboss$classloader:id="vfs:$$$C:$01-Development$Projekte$CODI$jboss-6$0$0$Final$server$default$deploy$myfaces-cdi-1$0$2-SNAPSHOT$war"-Built-in-Principal_$$_WeldProxy
> cannot be cast to javassist.util.proxy.ProxyObject
> > 
> > 
> >         at
> org.jboss.weld.bean.proxy.ProxyFactory.create(ProxyFactory.java:248)
> [:6.0.0.Final]
> >         at
> org.jboss.weld.bean.builtin.ee.AbstractEEBean.<init>(AbstractEEBean.java:46)
> [:6.0.0.Final]
> > 
> > So, I removed javassist in the next step and i got:
> > 
> > 
> > 23:17:31,816 ERROR
> [org.jboss.kernel.plugins.dependency.AbstractKernelController]
> Error installing to Start:
> name=vfs:///C:/01-Development/Projekte/CODI/jboss-6.0.0.Final/server/default/deploy/myfaces-cdi-1.0.2-SNAPSHOT.war_WeldBootstrapBean
> state=Create: org.jboss.weld.exceptions.DeploymentExceptio
> > 
> > 
> > n: WELD-001409 Ambiguous dependencies for type
> [MessageContext] with qualifiers [@Default] at injection
> point [[parameter 1] of [method] @Produces @Dependent @Jsf
> @Named public
> org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareMessageContextProducer.createContext(MessageContext,
> Instance<Me
> > 
> > 
> > ssageFactory>, Instance<ELProvider>,
> Instance<ArgumentFilter>)]. Possible dependencies
> [[Producer Method [MessageContext] with qualifiers [@Any
> @Default] declared as [[method] @Produces @Dependent @Jsf
> @Named public
> org.apache.myfaces.extensions.cdi.jsf.impl.message.JsfAwareMessageContextProducer.cr
> > 
> > 
> > eateContext(MessageContext,
> Instance<MessageFactory>, Instance<ELProvider>,
> Instance<ArgumentFilter>)], Managed Bean [class
> org.apache.myfaces.extensions.cdi.message.impl.DefaultMessageContext]
> with qualifiers [@Any @Default]]]
> > 
> > 
> >         at
> org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:309)
> [:6.0.0.Final]
> > 
> > Seams like
> myfaces-extcdi-message-module-impl-0.9.1.jar causes the
> troubles. Any thoughts what needs to be done?
> > 
> > 
> > 
> > 
> > Thanks
> > Michael
> > 
> > 
> > 2011/1/1 Pete Muir <pmuir at redhat.com>
> > 
> > 
> > 
> > 
> > On 31 Dec 2010, at 17:39, Dan Allen wrote:
> > 
> > 
> > 
> > > It's more than likely geronimo-jcdi jar that's
> causing the problem. Weld looks to see if Extension class
> equals Extension class and since there are two independent
> instances on the classpath, it breaks the comparison. 9/10
> this is the source of a class not found problem.
> > 
> > 
> > 
> > >
> > 
> > > Java EE APIs should never be provided by an
> archive when deploying to a compliant app server. If you
> were moving from Tomcat to JBoss AS it's important to keep
> that in mind.
> > 
> > >
> > 
> > > I doubt the apache-commons libraries would
> present a problem, so you can likely leave those.
> > 
> > 
> > 
> > They (used to at least) cause problems with
> RichFaces.
> > 
> > 
> > 
> > In general until AS7 I would recommend not duplicating
> libs in your war that in the AS, it will cause you a lot
> less problems in the long run :-D
> > 
> > 
> > 
> > 
> > 
> > >
> > 
> > > -Dan
> > 
> > >
> > 
> > > On Fri, Dec 31, 2010 at 11:00 AM, Pete Muir
> <pmuir at redhat.com>
> wrote:
> > 
> > 
> > > Aha, as I thought you are bundling in the war all
> sorts of stuff which AS6 provides (and doesn't support
> overriding simply by placing in the war).
> > 
> > >
> > 
> > > Try removing at least:
> > 
> > >
> > 
> > > * geronimo*
> > 
> > > * javassist
> > 
> > > * jsr250-api
> > 
> > > * myfaces-api
> > 
> > > * myfaces-impl
> > 
> > > * openwebbeans*
> > 
> > > * scannotation
> > 
> > >
> > 
> > > you may also need to remove commons-XXX which
> duplicate that in the AS
> > 
> > >
> > 
> > > HTH
> > 
> > >
> > 
> > >
> > 
> > > On 31 Dec 2010, at 15:42, Michael Schütz wrote:
> > 
> > >
> > 
> > > > Please see attached screenshot.
> > 
> > > >
> > 
> > > > Thanks
> > 
> > > > Michael
> > 
> > > >
> > 
> > > > 2010/12/31 Pete Muir <pmuir at redhat.com>
> > 
> > 
> > > > No idea.
> > 
> > > >
> > 
> > > > What jars are placed in WEB-INF/lib?
> > 
> > > >
> > 
> > > > On 31 Dec 2010, at 15:19, Michael Schütz
> wrote:
> > 
> > > >
> > 
> > > > > Thanks for reply, Pete.
> > 
> > > > >
> > 
> > > > > Already spoke to CODI team. They do
> implement Extension. Doesn't look like CODI bug for them.
> > 
> > > > >
> > 
> > > > > So, does this CDI POM config look
> strange:
> > 
> > > > > <!-- MyFaces CODI -->
> > 
> > > > > 
>    <dependency>
> > 
> > > > >   
>    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
> > 
> > > > >   
>    <artifactId>myfaces-extcdi-core-api</artifactId>
> > 
> > > > >   
>    <version>${myfaces_codi.version}</version>
> > 
> > > > >   
>    <scope>compile</scope>
> > 
> > > > > 
>    </dependency>
> > 
> > > > >
> > 
> > > > > 
>    <dependency>
> > 
> > > > >   
>    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
> > 
> > > > >   
>    <artifactId>myfaces-extcdi-core-impl</artifactId>
> > 
> > > > >   
>    <version>${myfaces_codi.version}</version>
> > 
> > > > >   
>    <scope>runtime</scope>
> > 
> > > > > 
>    </dependency>
> > 
> > > > > 
>    <dependency>
> > 
> > > > >   
>    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
> > 
> > > > >   
>    <artifactId>myfaces-extcdi-jsf20-module-api</artifactId>
> > 
> > > > >   
>    <version>${myfaces_codi.version}</version>
> > 
> > > > >   
>    <scope>compile</scope>
> > 
> > > > > 
>    </dependency>
> > 
> > > > >
> > 
> > > > >   
>    <dependency>
> > 
> > > > >     
>    <groupId>org.apache.myfaces.extensions.cdi.modules</groupId>
> > 
> > > > >     
>    <artifactId>myfaces-extcdi-jsf20-module-impl</artifactId>
> > 
> > > > >     
>    <version>${myfaces_codi.version}</version>
> > 
> > > > >     
>    <scope>runtime</scope>
> > 
> > > > > 
>    </dependency>
> > 
> > > > >
> > 
> > > > >
> > 
> > > > > Cheers
> > 
> > > > > Michael
> > 
> > > > >
> > 
> > > > > 2010/12/31 Pete Muir <pmuir at redhat.com>
> > 
> > 
> > > > >
> > 
> > > > > On 31 Dec 2010, at 14:37, Michael
> Schütz wrote:
> > 
> > > > >
> > 
> > > > > > Hi to all,
> > 
> > > > > >
> > 
> > > > > > would like to run CODI/MyFaces
> example within JBoss AS 6 final.
> > 
> > > > > > Getting:
> > 
> > > > > > WeldBootstrapBean state=Create:
> java.lang.RuntimeException: Service class or
> > 
> > > > > >
> g.apache.myfaces.extensions.cdi.core.impl.projectstage.ProjectStageActivationExtension
> didn't implement the Extension interface
> > 
> > > > > >
> > 
> > > > > >     
>    at
> org.jboss.weld.util.ServiceLoader.loadClass(ServiceLoader.java:261)
> [:6.0.0.Final]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:233)
> [:6.0.0.Final]
> > 
> > > > > >     
>    at
> org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:194)
> [:6.0.0.Final]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:157)
> [:6.0.0.Final]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:346)
> [:6.0.0.Final]
> > 
> > > > > >     
>    at
> org.jboss.weld.bootstrap.ExtensionBeanDeployer.addExtensions(ExtensionBeanDeployer.java:93)
> [:6.0.0.Final]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:333)
> [:6.0.0.Final]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> org.jboss.weld.integration.deployer.env.helpers.BootstrapBean.boot(BootstrapBean.java:92)
> [:6.0.0.Final]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [:1.6.0_21]
> > 
> > > > > >
> > 
> > > > > >     
>    at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [:1.6.0_21]
> > 
> > > > > >     
>    at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [:1.6.0_21]
> > 
> > > > > >
> > 
> > > > > > Everything runs fine within
> Tomcat7.
> > 
> > > > > >
> > 
> > > > > > Already posted question at Weld
> forum without having much success: http://seamframework.org/Community/CODIAndJBossAS6FinalProjectStageActivationExtensionDidntImplementTheExtensionInterface
> > 
> > 
> > 
> > > > > >
> > 
> > > > > > What I would like to know:
> > 
> > > > > > 1) Is it not supposed to run?
> > 
> > > > >
> > 
> > > > > I would guess it is, but you should
> check with the CODI team.
> > 
> > > > >
> > 
> > > > > > 2) Is it project configuration
> issue?
> > 
> > > > >
> > 
> > > > > Possibly, it looks like it does really
> impl Extension so check you aren't bundling the CDI API in
> your war accidentally.
> > 
> > > > >
> > 
> > > > > > 3) Is it a bug? (JBoss, Weld? JIRA
> issue already filed)
> > 
> > > > >
> > 
> > > > > Probably not in JBoss or Weld.
> > 
> > > > >
> > 
> > > > > >
> > 
> > > > > >
> > 
> > > > > > thanks a lot
> > 
> > > > > > Michael
> > 
> > > > > >
> _______________________________________________
> > 
> > > > > > weld-dev mailing list
> > 
> > > > > > weld-dev at lists.jboss.org
> > 
> > 
> > > > > > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > > > >
> > 
> > > > >
> > 
> > > > >
> _______________________________________________
> > 
> > > > > weld-dev mailing list
> > 
> > > > > weld-dev at lists.jboss.org
> > 
> > 
> > > > > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > > >
> > 
> > > >
> > 
> > > > <codi_webinf_lib.png>
> > 
> > >
> > 
> > >
> > 
> > > _______________________________________________
> > 
> > > weld-dev mailing list
> > 
> > > weld-dev at lists.jboss.org
> > 
> > > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > >
> > 
> > >
> > 
> > >
> > 
> > > --
> > 
> > > Dan Allen
> > 
> > > Principal Software Engineer, Red Hat | Author of
> Seam in Action
> > 
> > > Registered Linux User #231597
> > 
> > >
> > 
> > > http://mojavelinux.com
> > 
> > > http://mojavelinux.com/seaminaction
> > 
> > 
> > > http://www.google.com/profiles/dan.j.allen
> > 
> > 
> > > _______________________________________________
> > 
> > > weld-dev mailing list
> > 
> > > weld-dev at lists.jboss.org
> > 
> > > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > 
> > weld-dev mailing list
> > 
> > weld-dev at lists.jboss.org
> > 
> > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > -----Inline Attachment Follows-----
> > 
> > _______________________________________________
> > weld-dev mailing list
> > weld-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > weld-dev mailing list
> > weld-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/weld-dev
> > 
> > 
> > 
> > -- 
> > Dan Allen
> > Principal Software Engineer, Red Hat | Author of Seam
> in Action
> > Registered Linux User #231597
> > 
> > http://mojavelinux.com
> > http://mojavelinux.com/seaminaction
> > http://www.google.com/profiles/dan.j.allen
> > 
> 
> 


      



More information about the weld-dev mailing list