No, I haven't hit this yet. I will keep you posted if I encounter the problem/a potential solution.
Bernhard Huemer found out that the problem from above has been fixed in the latest pluto-version! regards, Martin On Tue, Mar 11, 2008 at 2:51 PM, Michael Freedman <[EMAIL PROTECTED]> wrote: > > What we were/are seeing is that sometimes when we launch a portlet using > MyFaces that some user clicks are "getting lost". By lost I mean it looks > like an action is being submitted and a navigation is being asked for, but > rather then navigating the current view rerenders. I.e. you click but > remain on the same view. By intermittent we mean that if you click multiple > times one of the clicks eventually works. Also by intermittent we mean that > this doesn't seem to happen every time you run the portlet app. Sounds like > you haven't hit this yet Martin. I am trying to repoduce on my laptop but > am not yet able.... > -Mike- > > > > Martin Marinschek wrote: > intermittent what? > > regards, > > Martin > > On Mon, Mar 10, 2008 at 7:22 PM, Scott O'Bryan <[EMAIL PROTECTED]> wrote: > > > With myfaces I was seeing intermittent with the navigation of the test > case... The RI seems to work perfectly. At first glance, Mike thought > it might be an issue with the serialized view that MyFaces is saving on > the request scope being preserved between renders. > > It might be as simple as adding the MyFaces objects to the "excludes". > > Scott > > > > Martin Marinschek wrote: > > Hi guys, > > > > interestingly enough, it works as well with MyFaces for me - just as > > expected (with the same start-up hickup). Great news! > > > > regards, > > > > Martin > > > > On Mon, Mar 10, 2008 at 7:16 PM, Martin Marinschek > > <[EMAIL PROTECTED]> wrote: > > > >> Hi guys, > >> > >> on refresh, everything works just perfectly - it is only the first > >> request that was falling down on me, and yes, I am using the RI. > >> > >> I just put myself in the debugger - this is what I saw after the first > >> line of this segment: > >> > >> PortletSession portletSession = mPortletRequest.getPortletSession(true); > >> > >> return portletSession.getAttribute(key, mScope); > >> > >> the servlet-session underlying the portlet session is invalid. Can not > >> be - but it is ;) > >> > >> Now, I am absolutely sure this is not an issue of the bridge - it is > >> an issue of Jetty or the Pluto-integration therein. > >> > >> regards, > >> > >> Martin > >> > >> > >> > >> On Mon, Mar 10, 2008 at 5:13 PM, Scott O'Bryan <[EMAIL PROTECTED]> > wrote: > >> > Hmm. I wasn't getting that and I think Mike was able to test it out as > >> > well.. Let me ask you a few things: > >> > > >> > 1. are you using the RI? Myfaces doesn't currently work for some > reason. > >> > 2. I had a similar issue when I was trying to use an old browser > >> > window. Pluto/jetty was trying to resolve with my old session cookie > >> > and was blowing up. Did you try using a new browser window? > >> > > >> > Scott > >> > > >> > > >> > > >> > Martin Marinschek wrote: > >> > > This is for both Mojarra and MyFaces... > >> > > > >> > > regards, > >> > > > >> > > Martin > >> > > > >> > > On Mon, Mar 10, 2008 at 3:25 PM, Martin Marinschek > >> > > <[EMAIL PROTECTED]> wrote: > >> > > > >> > >> Hi Scott, > >> > >> > >> > >> great thing! However, I am getting this on startup: > >> > >> > >> > >> javax.portlet.PortletException: doBridgeDispatch failed: error from > >> > >> Bridge in executing the request > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:404) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doDispatchInternal(GenericFacesPortlet.java:374) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:218) > >> > >> at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:186) > >> > >> at javax.portlet.GenericPortlet.render(GenericPortlet.java:175) > >> > >> at > org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:208) > >> > >> at > org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:139) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) > >> > >> at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >> > >> at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >> > >> at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > >> > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > >> > >> at > org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192) > >> > >> at > org.apache.pluto.core.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:167) > >> > >> at > org.apache.pluto.core.DefaultPortletInvokerService.render(DefaultPortletInvokerService.java:101) > >> > >> at > org.apache.pluto.core.PortletContainerImpl.doRender(PortletContainerImpl.java:173) > >> > >> at > org.apache.pluto.driver.tags.PortletTag.doStartTag(PortletTag.java:152) > >> > >> at > org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp._jspx_meth_pluto_portlet_0(org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp:99) > >> > >> at > org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp._jspService(org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp:74) > >> > >> at > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) > >> > >> at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470) > >> > >> at > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364) > >> > >> at > com.bekk.boss.pluto.embedded.util.PortletJspServlet.service(PortletJspServlet.java:43) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) > >> > >> at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >> > >> at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >> > >> at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > >> > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > >> > >> at > org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192) > >> > >> at > org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997) > >> > >> at > org.apache.jsp.pluto.index_jsp._jspService(org.apache.jsp.pluto.index_jsp:112) > >> > >> at > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) > >> > >> at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470) > >> > >> at > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364) > >> > >> at > com.bekk.boss.pluto.embedded.util.PortletJspServlet.service(PortletJspServlet.java:43) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) > >> > >> at > org.apache.pluto.driver.PortalDriverFilter.doFilter(PortalDriverFilter.java:129) > >> > >> at > com.bekk.boss.pluto.embedded.util.PlutoPortalDriverFilter.doFilter(PlutoPortalDriverFilter.java:45) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) > >> > >> at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >> > >> at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >> > >> at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > >> > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > >> > >> at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) > >> > >> at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > >> > >> at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > >> > >> at org.mortbay.jetty.Server.handle(Server.java:324) > >> > >> at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) > >> > >> at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) > >> > >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) > >> > >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > >> > >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) > >> > >> at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) > >> > >> at > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) > >> > >> Caused by: javax.portlet.faces.BridgeException: > java.lang.IllegalStateException > >> > >> at > org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:438) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:400) > >> > >> ... 66 more > >> > >> Caused by: java.lang.IllegalStateException > >> > >> at > org.mortbay.jetty.servlet.AbstractSessionManager$Session.getAttribute(AbstractSessionManager.java:784) > >> > >> at > org.apache.pluto.internal.impl.PortletSessionImpl.getAttribute(PortletSessionImpl.java:96) > >> > >> at > org.apache.myfaces.portlet.faces.util.map.PortletSessionMap.getAttribute(PortletSessionMap.java:72) > >> > >> at > org.apache.myfaces.portlet.faces.util.map.PortletAbstractMap.get(PortletAbstractMap.java:87) > >> > >> at > com.sun.faces.application.StateManagerImpl.saveSerializedView(StateManagerImpl.java:242) > >> > >> at > javax.faces.application.StateManager.saveView(StateManager.java:155) > >> > >> at > javax.faces.application.StateManagerWrapper.saveView(StateManagerWrapper.java:85) > >> > >> at > org.apache.myfaces.portlet.faces.application.PortletViewHandlerImpl$StringBuilderWriter.write(PortletViewHandlerImpl.java:393) > >> > >> at > org.apache.myfaces.portlet.faces.application.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:249) > >> > >> at > com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) > >> > >> at > com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248) > >> > >> at > com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) > >> > >> at > org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRender(BridgeImpl.java:526) > >> > >> at > org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:423) > >> > >> ... 67 more > >> > >> > >> > >> Nested Exception is javax.portlet.faces.BridgeException: > >> > >> java.lang.IllegalStateException > >> > >> at > org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:438) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:400) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doDispatchInternal(GenericFacesPortlet.java:374) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:218) > >> > >> at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247) > >> > >> at > javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:186) > >> > >> at javax.portlet.GenericPortlet.render(GenericPortlet.java:175) > >> > >> at > org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:208) > >> > >> at > org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:139) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) > >> > >> at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >> > >> at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >> > >> at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > >> > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > >> > >> at > org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192) > >> > >> at > org.apache.pluto.core.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:167) > >> > >> at > org.apache.pluto.core.DefaultPortletInvokerService.render(DefaultPortletInvokerService.java:101) > >> > >> at > org.apache.pluto.core.PortletContainerImpl.doRender(PortletContainerImpl.java:173) > >> > >> at > org.apache.pluto.driver.tags.PortletTag.doStartTag(PortletTag.java:152) > >> > >> at > org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp._jspx_meth_pluto_portlet_0(org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp:99) > >> > >> at > org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp._jspService(org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp:74) > >> > >> at > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) > >> > >> at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470) > >> > >> at > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364) > >> > >> at > com.bekk.boss.pluto.embedded.util.PortletJspServlet.service(PortletJspServlet.java:43) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) > >> > >> at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >> > >> at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >> > >> at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > >> > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > >> > >> at > org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192) > >> > >> at > org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997) > >> > >> at > org.apache.jsp.pluto.index_jsp._jspService(org.apache.jsp.pluto.index_jsp:112) > >> > >> at > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373) > >> > >> at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470) > >> > >> at > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364) > >> > >> at > com.bekk.boss.pluto.embedded.util.PortletJspServlet.service(PortletJspServlet.java:43) > >> > >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > >> > >> at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) > >> > >> at > org.apache.pluto.driver.PortalDriverFilter.doFilter(PortalDriverFilter.java:129) > >> > >> at > com.bekk.boss.pluto.embedded.util.PlutoPortalDriverFilter.doFilter(PlutoPortalDriverFilter.java:45) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > >> > >> at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) > >> > >> at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > >> > >> at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > >> > >> at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > >> > >> at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > >> > >> at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) > >> > >> at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > >> > >> at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > >> > >> at org.mortbay.jetty.Server.handle(Server.java:324) > >> > >> at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) > >> > >> at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) > >> > >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) > >> > >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > >> > >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) > >> > >> at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) > >> > >> at > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) > >> > >> Caused by: java.lang.IllegalStateException > >> > >> at > org.mortbay.jetty.servlet.AbstractSessionManager$Session.getAttribute(AbstractSessionManager.java:784) > >> > >> at > org.apache.pluto.internal.impl.PortletSessionImpl.getAttribute(PortletSessionImpl.java:96) > >> > >> at > org.apache.myfaces.portlet.faces.util.map.PortletSessionMap.getAttribute(PortletSessionMap.java:72) > >> > >> at > org.apache.myfaces.portlet.faces.util.map.PortletAbstractMap.get(PortletAbstractMap.java:87) > >> > >> at > com.sun.faces.application.StateManagerImpl.saveSerializedView(StateManagerImpl.java:242) > >> > >> at > javax.faces.application.StateManager.saveView(StateManager.java:155) > >> > >> at > javax.faces.application.StateManagerWrapper.saveView(StateManagerWrapper.java:85) > >> > >> at > org.apache.myfaces.portlet.faces.application.PortletViewHandlerImpl$StringBuilderWriter.write(PortletViewHandlerImpl.java:393) > >> > >> at > org.apache.myfaces.portlet.faces.application.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:249) > >> > >> at > com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106) > >> > >> at > com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248) > >> > >> at > com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144) > >> > >> at > org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRender(BridgeImpl.java:526) > >> > >> at > org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:423) > >> > >> ... 67 more > >> > >> > >> > >> > >> > >> > >> > >> regards, > >> > >> > >> > >> Martin > >> > >> > >> > >> > >> > >> > >> > >> On Thu, Mar 6, 2008 at 5:18 PM, Scott O'Bryan <[EMAIL PROTECTED]> > wrote: > >> > >> > Hey everyone, > >> > >> > > >> > >> > For some time now we've had a jira ticket to make demo projects > for the > >> > >> > bridge. I'm proud to say that I've done some work and have > committed > >> > >> > these demo projects. We'll be expanding them very soon, but for > now > >> > >> > there is a blank project which can be used for other Maven and > non-maven > >> > >> > projects as a jumpstart to a portlet faces application. The > second demo > >> > >> > project is, basically, the same thing but provides an index page > where > >> > >> > more projects and demos may be added. > >> > >> > > >> > >> > The demo project has many profiles in maven which should allow > for easy > >> > >> > deployment into pluto and other portals, as well as a built in > Jetty > >> > >> > configuration which may be run against either the R.I. or MyFaces > using > >> > >> > the following commands: > >> > >> > > >> > >> > mvn clean -PjettyConfig jetty:run (for MyFaces) > >> > >> > or > >> > >> > mvn clean -PjettyConfig -Djsf=ri-provided (for the R.I) > >> > >> > > >> > >> > The url to run the content of this built in configuration is: > >> > >> > http://localhost:8080/portlet-bridge-demo/pluto/index.jsp > >> > >> > > >> > >> > Running the demo under the R.I. works very well, but the project > did > >> > >> > reveal some incompatibilities with MyFaces 1.2.2. Now that we are > aware > >> > >> > of them we should be able to make some progress on getting these > issues > >> > >> > resolved. > >> > >> > > >> > >> > The demo's right now exist in the core/trunk in the svn > repository (does > >> > >> > not yet exist in the trunk_2.0) and everyone interested/helping > with > >> > >> > development of the bridge is encouraged to check it out... > >> > >> > > >> > >> > Thanks, > >> > >> > Scott > >> > >> > > >> > >> > >> > >> > >> > >> > >> > >> -- > >> > >> > >> > >> http://www.irian.at > >> > >> > >> > >> Your JSF powerhouse - > >> > >> JSF Consulting, Development and > >> > >> Courses in English and German > >> > >> > >> > >> Professional Support for Apache MyFaces > >> > >> > >> > >> > >> > > > >> > > > >> > > > >> > > > >> > > >> > > >> > >> > >> > >> -- > >> > >> > >> > >> http://www.irian.at > >> > >> Your JSF powerhouse - > >> JSF Consulting, Development and > >> Courses in English and German > >> > >> Professional Support for Apache MyFaces > >> > >> > > > > > > > > > > > > > > > > -- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces
