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