1 2 Previous Next 20 Replies Latest reply on Jun 12, 2009 3:43 PM by michaelschuetz

    Flex and Seam Integration

      The integration of Flex and Seam has been moving along quite nicely! GraniteDS has released it's 1.0.1 version and includes a nice seam integration package. It includes support for Conversation, JBPM, FaceMessage and a hibernate validator. Also on a side note GraniteDS includes support for lazyloading. I have a couple of nice example apps that you can use to help you get started. We took the seam hotel booking example app and converted it to use Flex. This is also the same demo app the I demoed at JBoss World. You can get them off of my site RationalDeveloper in the Granite Section. If you want a less complicated example you can get a helloworld example in the same section. The code is in an early iteration however it does work. We are working on making the code more streamlined and a tighter integration with seam. Check out RationalDeveloper for updates and how to’s. To build the apps, you will need a jboss server (4.2.x), ant and a Flex2 SDK.


      Cameron

        • 1. Re: Flex and Seam Integration
          techieexchange1

          Hi,
          Congrats!!


          Great work bringing Seam in RIA arena.


          Could you please post your presentation that you did for JBossWorld, Orlando.


          Thanks

          • 2. Re: Flex and Seam Integration

            Thanks! :)


            I definitely intend to get the slides up. I am waiting to get the approval from the legal department, so hopefully sometime today. When they are up I will post a link here to them.



            Cameron

            • 3. Re: Flex and Seam Integration
              thejavafreak

              Wow this is great. I can't wait for this project to be done. Keep up the good work.


              Cheers,

              • 4. Re: Flex and Seam Integration

                Thanks to Adobe figuring out what my problem was, I now have FlexBooking for BlazeDS available. You can download it from RationalDeveloper. The code to build the library that integrates Seam, BlazeDS and Flex is also on my site feel free to download it and check it out as well.Look in the BlazeDS section. The code is not too different from what is in Granite. This code is also in a very early iteration, but I think it is a nice starting point.  I am still waiting on our legal department to approve the posting of my slides, you know how lawyers are. I will start posting some how-to’s for those of you who want a head start.



                Cameron

                • 5. Re: Flex and Seam Integration
                  monkeyden

                  Hi Cameron,
                  One of my favorite things about Seam is the simple and powerful event handling.  I was wondering if there has been any work done with respect to this.  I envision Gravity possibly being used to allow events to bubble back up to the view.  Using the hotel booking application as an example



                  1. User A searches and finds the last non-smoking room with a king sized bed

                  2. User B performs the same search and finds the same room

                  3. User A books the room

                  4. User B is notified that this room has become unavailable



                  Admittedly not the best use case, but you get the idea.  I plan on looking into the way Seam invokes the observers to perhaps implement a relay to the view.


                  Thanks to you, Franck and all the other contributors for your work on this.  I am thoroughly enjoying it and look forward to seeing this relationship mature.

                  • 6. Re: Flex and Seam Integration

                    Hmm an interesting use case. We haven't done any thing in regards to this specifically as of yet. Currently we are in the process of tightening the integration between the Seam component and the corresponding Flex component, to make them feel like 1 component. I would think this should still work.  Since all we are doing is intercepting the call and plugging the id's(conversation and task) in to the correct spot for Seam. Both Granite and BlazeDS offer a datapush implementation. So you could have the event write a message to the queue. If for some reason a datapush wasn't wanted nor needed you could always have it create a message and add it to FacesMessages and then return that to the client with some sort of exception. I will see if I can add something like this to Flex Booking.



                    Cameron

                    • 7. Re: Flex and Seam Integration
                      mikko_lehtinen

                      Hi,


                      This sounds very good. However while I was trying it out with Seam 2.0.1.GA I get the following exception. Any idea what's going on?




                      MessageBrokerServlet failed to initialize due to runtime exception: java.lang.IllegalStateException: No deployment strategy!
                           at org.jboss.seam.init.Initialization.init(Initialization.java:557)
                           at org.flex.blazeds.seam.factory.FlexSeamFactory.initialize(FlexSeamFactory.java:64)
                           at flex.messaging.config.FactorySettings.createFactory(FactorySettings.java:60)
                           at flex.messaging.config.MessagingConfiguration.createFactories(MessagingConfiguration.java:114)
                           at flex.messaging.config.MessagingConfiguration.configureBroker(MessagingConfiguration.java:93)
                           at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:129)
                           at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
                           at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
                           at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4069)
                           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4373)
                           at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
                           at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
                           at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
                           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:585)
                           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
                           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310)
                           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:585)
                           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
                           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)
                           at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
                           at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
                           at org.jboss.web.WebModule.startModule(WebModule.java:83)
                           at org.jboss.web.WebModule.startService(WebModule.java:61)
                           at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
                           at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
                           at sun.reflect.GeneratedMethodAccessor347.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
                           at $Proxy0.start(Unknown Source)
                           at org.jboss.system.ServiceController.start(ServiceController.java:417)
                           at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy45.start(Unknown Source)
                           at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
                           at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                           at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
                           at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
                           at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93)
                           at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
                           at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy46.start(Unknown Source)
                           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
                           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
                           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
                           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
                           at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy9.deploy(Unknown Source)
                           at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
                           at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
                      flex.messaging.config.ConfigurationException: An error occurred trying to construct FlexFactory 'org.flex.blazeds.seam.factory.FlexSeamFactory'.   The underlying cause is: 'java.lang.IllegalStateException: No deployment strategy!'.
                           at flex.messaging.config.FactorySettings.createFactory(FactorySettings.java:72)
                           at flex.messaging.config.MessagingConfiguration.createFactories(MessagingConfiguration.java:114)
                           at flex.messaging.config.MessagingConfiguration.configureBroker(MessagingConfiguration.java:93)
                           at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:129)
                           at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
                           at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
                           at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4069)
                           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4373)
                           at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
                           at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
                           at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
                           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:585)
                           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
                           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310)
                           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:585)
                           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
                           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)
                           at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
                           at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
                           at org.jboss.web.WebModule.startModule(WebModule.java:83)
                           at org.jboss.web.WebModule.startService(WebModule.java:61)
                           at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
                           at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
                           at sun.reflect.GeneratedMethodAccessor347.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
                           at $Proxy0.start(Unknown Source)
                           at org.jboss.system.ServiceController.start(ServiceController.java:417)
                           at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy45.start(Unknown Source)
                           at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
                           at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                           at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
                           at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
                           at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93)
                           at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
                           at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy46.start(Unknown Source)
                           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
                           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
                           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
                           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
                           at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy9.deploy(Unknown Source)
                           at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
                           at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)

                      09:18:54,812 INFO  /FlexBooking Marking servlet MessageBrokerServlet as unavailable
                      09:18:54,812 ERROR /FlexBooking Servlet /FlexBooking threw load() exception
                      javax.servlet.UnavailableException: An error occurred trying to construct FlexFactory 'org.flex.blazeds.seam.factory.FlexSeamFactory'.   The underlying cause is: 'java.lang.IllegalStateException: No deployment strategy!'.
                           at flex.messaging.MessageBrokerServlet.init(MessageBrokerServlet.java:167)
                           at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
                           at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
                           at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4069)
                           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4373)
                           at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
                           at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
                           at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553)
                           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:585)
                           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
                           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310)
                           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:585)
                           at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
                           at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301)
                           at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104)
                           at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375)
                           at org.jboss.web.WebModule.startModule(WebModule.java:83)
                           at org.jboss.web.WebModule.startService(WebModule.java:61)
                           at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
                           at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
                           at sun.reflect.GeneratedMethodAccessor347.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
                           at $Proxy0.start(Unknown Source)
                           at org.jboss.system.ServiceController.start(ServiceController.java:417)
                           at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy45.start(Unknown Source)
                           at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466)
                           at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                           at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
                           at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
                           at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93)
                           at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
                           at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy46.start(Unknown Source)
                           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
                           at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015)
                           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
                           at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
                           at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
                           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                           at java.lang.reflect.Method.invoke(Method.java:585)
                           at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                           at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                           at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                           at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                           at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                           at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
                           at $Proxy9.deploy(Unknown Source)
                           at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
                           at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
                           at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
                      • 8. Re: Flex and Seam Integration

                        For some reason the messagebroker servlet can't get a hold of the servlet context.  Could you post your web.xml and your environment(server, JDK..)



                        Cameron

                        • 9. Re: Flex and Seam Integration
                          mikko_lehtinen

                          That was the FlexBooking-BlazeDS example. I just tried updating the Seam jars to new version. Server was jboss-4.2.1.GA.

                          • 10. Re: Flex and Seam Integration

                            Fixed, the example app should now be compatible with Seam-2.0.0 and Seam-2.0.1



                            Cameron   

                            • 11. Re: Flex and Seam Integration

                              Hi every one.


                              It has been a while since I have updated this post.


                              William, Franck  and I have been working ( GraniteDS ) on integrating Seam and Flex. I think we have a really great implementation, called Tide. I am going to borrow from the Tide quick presentation, which you can find here. This new subproject (Tide) is aimed at improving the data services part of GraniteDS and simplify the Flex client programming model when integrating with server side frameworks. With Tide you can code your back ends normally.There isn't any code that has to be added specifically for Flex or Tide.


                              One of the great things about using Seam and Tide (Flex) together is it really simplifies your development efforts. The same web.xml, service-config.xml and granite-config.xml can be used across all of your projects and don’t require any modifications. In other words you don’t have to constantly add entries to the service-config.xml! As of this moment we are using it with Seam-2.0.0 GA and have not tested it with the other releases.  To find out how to set up your project refer to the Readme.txt file in the helloworld-tide project. You can download the project for this code here, this project also includes a readme.txt file with instructions on how to set up a new project.


                              Some high points Tide includes


                              Using existing Seam components
                              Integration with Seam bijection
                              Propagation of context messages from the server
                              Integration with Seam security, in particular the identity component
                              Integration with server side validation (Hibernate Validator)


                              For a more advanced project you can download graniteds-seam-booking


                              Let’s look at a hello world example:


                              Seam:


                              package com.rationaldeveloper.action;
                              
                              import org.jboss.seam.annotations.Name;
                              
                              @Name("helloAction")
                              public class HelloAction {
                                   
                                   public String sayHello(String name) {
                                        return "Hello " + name; 
                                   }
                              }
                              


                              Flex :



                              <?xml version="1.0" encoding="utf-8"?>
                              <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
                              
                                 <mx:Script>
                                      <![CDATA[
                                           import mx.controls.Alert;
                                           import org.granite.tide.events.TideResultEvent;
                                           import org.granite.tide.seam.Seam;
                                           import org.granite.tide.seam.Context;
                                           
                                           private function sayHello(): void {
                                                var ctx: Context = Seam.getInstance().getSeamContext();
                                                ctx.helloAction.sayHello(txtName.text,sayHelloResult);
                                           }
                                           
                                           
                                           private function sayHelloResult(result: TideResultEvent): void {
                                                Alert.show(String(result.result));
                                           }
                                      ]]>
                                 </mx:Script>
                                      
                              
                                   <mx:Button x="46" y="78" label="Say Hello" click="sayHello();"/>
                                   <mx:TextInput x="132" y="78" id="txtName"/>
                              </mx:Application>
                              


                              • 12. Re: Flex and Seam Integration
                                lich

                                great.

                                • 13. Re: Flex and Seam Integration
                                  vikram.vikram.chhetry.gmail.com

                                  Hi,


                                  I have two problems:-


                                  1.)
                                  I am trying to convert my seam project to Tide/Seam project.
                                  I am following the steps given in README.txt in HelloWorldTide sample application. My problem is I am not able to change build.xml accordingly. Step number 13 in README.txt says




                                  13) You need to change the build.xml to add the Flex tasks and see demo build.xml for details.

                                  But I don't know what all things do I need to change to get it running.


                                  2.)
                                  When I try to deploy Flex-seam-Booking application I get following exception while deploying




                                  14:15:08,565 FATAL [DatasourceConnectionProvider] Could not find datasource: java:/FlexBookingDatasource
                                  javax.naming.NameNotFoundException: FlexBookingDatasource not bound


                                  Some how I managed to run HelloWorldTide application on my server  but not able to move further.
                                  I am using jboss-4.2.2.GA and jboss-seam-2.0.1.CR1.


                                  I am stuck on this since a day.


                                  Any help would be appreciated.


                                  Thanks in advance,


                                  Vikram

                                  • 14. Re: Flex and Seam Integration

                                    13) You need to change the build.xml to add the Flex tasks and see demo build.xml for details.

                                    This refers to the loading of the ant FlexTask. Found in the ant folder in the 3.0 SDK. Also to the compiling of the actionscript files.Look at the build.mxml task.



                                    2.) When I try to deploy Flex-seam-Booking application I get following exception while deploying

                                    The datasource FlexBooking-dev-ds.xml is included in the project. You might want to make sure that is hasn't been moved and is still deploying inside of the jar(graniteds-seam-booking.jar). If you are using Eclipse make sure you do a clean and a full build first. Then use the deploy ant task.

                                    1 2 Previous Next