Here's the log, sorry for omission - long day.

The SliderSectionServiceImpl throws higher up the stack - can this pass the exception up to setupRender? I thought "throws SystemException" would have been enough?


Chris


[#|2014-09-24T17:12:32.253+1000|WARNING|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=185;_ThreadName=Thread-2;|javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5215) at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5113) at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4901) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2045) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1994) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:222) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:89)
        at com.sun.proxy.$Proxy815.getById(Unknown Source)
at org.opencsta.website.metwide.web.services.SliderSectionServiceImpl.getById(SliderSectionServiceImpl.java:31)
        at $SliderSectionService_1396ce9135fe50b1.getById(Unknown Source)
        at $SliderSectionService_1396ce9135fe5075.getById(Unknown Source)
at org.opencsta.website.metwide.web.components.Slider.setupRender(Slider.java:32) at org.opencsta.website.metwide.web.components.Slider.setupRender(Slider.java) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:176) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:135) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:183) at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:73) at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
        at $PageRenderQueue_1396ce9135fe50a0.render(Unknown Source)
        at $PageRenderQueue_1396ce9135fe509f.render(Unknown Source)
at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) at org.apache.tapestry5.internal.services.javascript.ConfigureHTMLElementFilter.renderMarkup(ConfigureHTMLElementFilter.java:45)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$29.renderMarkup(TapestryModule.java:1798)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$28.renderMarkup(TapestryModule.java:1788)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$27.renderMarkup(TapestryModule.java:1772)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$26.renderMarkup(TapestryModule.java:1756)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
at org.apache.tapestry5.modules.JavaScriptModule$1.renderMarkup(JavaScriptModule.java:237)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$25.renderMarkup(TapestryModule.java:1739)
        at $MarkupRenderer_1396ce9135fe50a3.renderMarkup(Unknown Source)
        at $MarkupRenderer_1396ce9135fe509e.renderMarkup(Unknown Source)
at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47)
        at $PageMarkupRenderer_1396ce9135fe509c.renderPageMarkup(Unknown Source)
at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:64) at $PageResponseRenderer_1396ce9135fe504a.renderPageResponse(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:72) at org.apache.tapestry5.modules.TapestryModule$34.handle(TapestryModule.java:1965)
        at $PageRenderRequestHandler_1396ce9135fe504c.handle(Unknown Source)
        at $PageRenderRequestHandler_1396ce9135fe5046.handle(Unknown Source)
at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at org.apache.tapestry5.internal.services.DeferredResponseRenderer.handlePageRender(DeferredResponseRenderer.java:52) at $ComponentRequestHandler_1396ce9135fe5047.handlePageRender(Unknown Source) at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) at $ComponentRequestHandler_1396ce9135fe5047.handlePageRender(Unknown Source) at org.apache.tapestry5.internal.services.RequestOperationTracker$2.run(RequestOperationTracker.java:73) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:55) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:78) at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1133) at org.apache.tapestry5.internal.services.RequestOperationTracker.handlePageRender(RequestOperationTracker.java:66) at $ComponentRequestHandler_1396ce9135fe5047.handlePageRender(Unknown Source) at $ComponentRequestHandler_1396ce9135fe5015.handlePageRender(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45)
        at $Dispatcher_1396ce9135fe501c.dispatch(Unknown Source)
        at $Dispatcher_1396ce9135fe5013.dispatch(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:298) at org.opencsta.website.metwide.web.services.AppModule$1.service(AppModule.java:103)
        at $RequestFilter_1396ce9135fe5012.service(Unknown Source)
        at $RequestHandler_1396ce9135fe5014.service(Unknown Source)
at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
        at $RequestHandler_1396ce9135fe5014.service(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:845)
        at $RequestHandler_1396ce9135fe5014.service(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:835)
        at $RequestHandler_1396ce9135fe5014.service(Unknown Source)
at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)
        at $RequestHandler_1396ce9135fe5014.service(Unknown Source)
        at $RequestHandler_1396ce9135fe5009.service(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:249) at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)
        at $HttpServletRequestHandler_1396ce9135fe500b.service(Unknown Source)
at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
        at $HttpServletRequestFilter_1396ce9135fe5006.service(Unknown Source)
        at $HttpServletRequestHandler_1396ce9135fe500b.service(Unknown Source)
at org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:795)
        at $HttpServletRequestHandler_1396ce9135fe500b.service(Unknown Source)
        at $HttpServletRequestHandler_1396ce9135fe5005.service(Unknown Source)
        at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231) at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        at java.lang.Thread.run(Thread.java:745)
Caused by: javax.persistence.NoResultException: getSingleResult() did not retrieve any entities. at org.eclipse.persistence.internal.jpa.EJBQueryImpl.throwNoResultException(EJBQueryImpl.java:1307) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getSingleResult(EJBQueryImpl.java:787) at org.opencsta.website.metwide.session.SliderSectionFacade.getById(SliderSectionFacade.java:37)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052) at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5388)
        at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
        at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
        at sun.reflect.GeneratedMethodAccessor171.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370) at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5360)
        at 
com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
        ... 101 more







On Wed, 24 Sep 2014 18:53:06 +1000, Chris Mylonas <ch...@opencsta.org> wrote:

Hi Tapestry Users,

Short version: Can a component use @InjectPage to redirect in case there is a problem during the render phase?

Unabridged version:

I have a my business layers running EJB.
Layout of project is like jumpstart for EJB stuff.  Works great.

EJB can't find any values in the database - cool. EJB Exception.


My Layout component pseudo code looks like this:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml";
       xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd";
       xmlns:p="tapestry:parameter"
       lang="en">
   <head>.....</head>
   <body>

   <div t:type="Header" />

   <div t:type="Slider" />

   <div t:type="CallToAction" />

   <div t:type="Footer" />

   </body>
</html>



If I have no Slider info in the database, and the exception is down below (in EJB land), I'd like Slider to throw an exception. And redirect to a CreateSliderSection page or some other "hey you don't have enough of a configuration for me to present" page.

My Slider component looks like this:

/**
  *
  * @author mylo
  */
public class Slider {

     @Inject
     private SliderSectionService sliderService;

     @Property
     private SliderSection slider;

     @InjectPage
     private CreateSliderSection createSliderSection;

     void setupRender() throws SystemException {
         slider = sliderService.getById(new Long(1));
     }

     Object onException(Throwable cause) {
         return createSliderSection ;
     }
}

Neither the SystemException (which extends RuntimeException as per Jumpstart) nor onException seem to be doing anything in this component.


Can a component use @InjectPage to redirect in case there is a problem during the render phase?

Cheers
Chris @author mylo!


--
Using Opera's mail client: http://www.opera.com/mail/

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to