Gangmax Blog

Seam的Interceptor

以下是工作中看到的一个exception stack trace:

[#|2010-06-10T09:31:49.155+0000|WARNING|sun-appserver2.1|javax.enterprise.resource.webcontainer.jsf.lifecycle|_ThreadID=17;_ThreadName=httpSSLWorkerThread-8080-0;RequestID=64a8962e-16cf-4e18-956a-944a0f314a84;|executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@1dacffe) threw exception
java.lang.NullPointerException
at com.sun.nib.portal.actions.cm.ManageCMTicketBean.initQueues(ManageCMTicketBean.java:147)
at com.sun.nib.portal.actions.cm.AddCMTicketBean.loadCMTicketForSP(AddCMTicketBean.java:231)
at com.sun.nib.portal.actions.cm.AddCMTicketBean.loadCMTicket(AddCMTicketBean.java:92)
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.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.ConversationInterceptor.aroundInvoke(ConversationInterceptor.java:56)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:185)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
at com.sun.nib.portal.actions.cm.AddCMTicketBean
$$javassist_seam_52.loadCMTicket(AddCMTicketBean$$_javassist_seam_52.java)
从中可以看出,seam使用了多层的interceptor来实现框架的工作。

Comments