Help

Controls

PermLinkWikiLink

Built with Seam

You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.

Forum: Seam Users Forum ListTopic List
19. Feb 2008, 02:31 CET | Link

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

19 Replies:
19. Feb 2008, 13:27 CET | Link

Hi, Congrats!!

Great work bringing Seam in RIA arena.

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

Thanks

19. Feb 2008, 13:43 CET | Link

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

20. Feb 2008, 12:44 CET | Link

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

Cheers,

 

Best regards,
Joshua

Visit my blog.

20. Feb 2008, 21:47 CET | Link

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

22. Feb 2008, 18:06 CET | Link

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.

 

Kyle W. Burke
http://www.monkeyden.com

25. Feb 2008, 15:40 CET | Link

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

04. Mar 2008, 08:28 CET | Link

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)
04. Mar 2008, 16:38 CET | Link

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

05. Mar 2008, 11:48 CET | Link

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

06. Mar 2008, 02:43 CET | Link

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

Cameron

30. Apr 2008, 21:12 CET | Link

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. Jun 2008, 10:29 CET | Link

great.

03. Jul 2008, 13:27 CET | Link

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

03. Jul 2008, 20:38 CET | Link
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.

07. Jul 2008, 13:24 CET | Link

thanks Cameron,

I need one more help from you.

I have a project build in seam.

Now in some reporting pages I want to put flex graphs, rest all the view will be in xhtml.

I am not able to find out what all things do i need to do for this. I have downloaded flex sdk 3 and I have jboss-seam-2.0.1.CR1 and jboss-4.2.2.GA.

I have also downloaded blazedDS, Flex-Booking-BlazeDS, Flex-Booking-Graniteds but still not able to get it done.

Can you please help me out on this?

Thanks in advance.

Vikram

08. Jul 2008, 15:34 CET | Link

While I love seeing my post at the top. :)

I think at this point it might be better to move this to the graniteds forums. You can get a lot of specialized help for this question. I also believe their are some post similar to yours. FYI: I think for the reporting capabilities you need to down load the Professional Edition.

Cameron

28. Jul 2008, 10:46 CET | Link

Is is possible to integrate seam security into the flex UI so only certain components are rendered?

Thanks

Craig

28. Jul 2008, 15:39 CET | Link

Currently you can do some thing like this

[Bindable]
public var ctx:Context = Seam.getInstance().getContext() as Context;

<mx:Panel width="100%" height="100%" layout="absolute" visible="ctx.identity.loggedIn">

We still need to implement some more work on the client side to make the security roles available.

12. Aug 2008, 16:25 CET | Link

Hi everybody! We just released GraniteDS RC4 1.1.0. This new release includes some bug fixes and some features that you may not be aware of. if you are so inclined you check out the information here