2010-10-15 15 views
6

Mam aplikację internetową GlassFish, która zgłasza błędy (wymienione poniżej) do przeglądarki internetowej. Ale moim problemem jest to, że nie widzę śladu stosu pełnej. Myślę, że muszę wiedzieć, jaki jest prawdziwy problem. Jak mogę zmienić długość śledzenia stosu?Jak mogę wydrukować pełny ślad stosu za pomocą GlassFish?

javax.ejb.EJBException 
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5119) 
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5017) 
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4805) 
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2004) 
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1955) 
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:198) 
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84) 
at $Proxy158.findRange(Unknown Source) 
at ejb.__EJB31_Generated__NewEntityFacade__Intf____Bean__.findRange(Unknown Source) 
at jsf.NewEntityController$1.createPageDataModel(NewEntityController.java:56) 
at jsf.NewEntityController.getItems(NewEntityController.java:155) 
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:597) 
at javax.el.BeanELResolver.getValue(BeanELResolver.java:302) 
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) 
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) 
at com.sun.el.parser.AstValue.getValue(AstValue.java:116) 
at com.sun.el.parser.AstValue.getValue(AstValue.java:163) 
at com.sun.el.parser.AstEqual.getValue(AstEqual.java:54) 
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219) 
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102) 
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190) 
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:416) 
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1607) 
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) 
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:848) 
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1613) 
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) 
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) 
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380) 
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126) 
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127) 
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313) 
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) 
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) 
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) 
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) 
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) 
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) 
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) 
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) 
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) 
at com.sun.grizzly.ContextTask.run(ContextTask.java:69) 
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 
at java.lang.Thread.run(Thread.java:619) 
Caused by: java.lang.IllegalArgumentException: The type [null] is not the expected [EntityType] for the key class [class Persistence.NewEntity]. 
at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entity(MetamodelImpl.java:152) 
at org.eclipse.persistence.internal.jpa.querydef.AbstractQueryImpl.from(AbstractQueryImpl.java:97) 
at ejb.AbstractFacade.findRange(AbstractFacade.java:48) 
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:597) 
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1056) 
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1128) 
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5292) 
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:615) 
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:567) 
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:157) 
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:139) 
at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:858) 
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797) 
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:367) 
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5264) 
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5252) 
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:190) 
... 55 more 
+1

To jest dobre pytanie! I musi istnieć lepszy sposób niż otaczający kod winowajcy przy próbie/haczyku (nie zamierzasz tego zrobić w produkcji) ... Będzie musiał to wykopać. –

Odpowiedz

0

Już odpowiedział między innymi na here. Zawiń podejrzane wywołania funkcji w bloku try-catch i wydrukuj stos śledzenia tylko wtedy, gdy jesteś w trybie debugowania (ze względów bezpieczeństwa). Powinieneś być w stanie uzyskać to, czego potrzebujesz.

+0

Nie rozumiem, jak to mogłoby mi pomóc. Mówią o System.print i mam aplikację JSF. – Markus

+0

Może ci pomóc, ponieważ 'EJBException' ma metodę printStackTrace, podobnie jak inne' Throwable'. Zobacz tutaj: http://download.oracle.com/javaee/1.3/api/javax/ejb/EJBException.html#printStackTrace() – darvids0n

+0

Jeśli nie wiesz, jak wydrukować tekst w przeglądarce internetowej, http: // www.ensode.net/java_servlet_stacktrace_browser.html – darvids0n