OpenAMF/Spring Error Handling
Dan Glauser <[email protected]>
| Newsgroups | gmane.comp.java.openamf.user |
|---|---|
| Organization | Roundbox Media |
| Message-ID | <1113590974.10086.21.camel@nano> |
Not how many people out there has a Flash client that uses OpenAMF to talk to Apache Tomcat with Spring but I'd like to hear how people are handling errors. Specifically, if and uncaught error is thrown somewhere in your Java application Tomcat will try and redirect to the jsp page specified in web.xml. For example: <error-page> <exception-type>java.lang.Exception</exception-type> <!-- Displays a stack trace --> <location>/jsp/uncaughtException.jsp</location> </error-page> Will tell Tomcat to redirect to localhost://webapp/jsp/uncaughtException.jsp Where localhost is whatever host you are running Tomcat on and webapp is the specific name of your web application. What is happening is the request is coming in via OpenAMF, the service is recognized, the first parameter is decoded and then Spring starts loading a bunch of obscure NoClassDefFoundErrors. Below is a snipit from my debug log, if anyone has any ideas I would appreciate it. Thanks! -- Dan Glauser [email protected] [DEBUG] AdvancedGateway - getting MethodConfig for login [DEBUG] AdvancedGateway - service method config name: login [DEBUG] AdvancedGateway - name matches, now to compare params [DEBUG] WebappClassLoader - loadClass(java.lang.String, false) [DEBUG] WebappClassLoader - Returning class from cache [DEBUG] AdvancedGateway - this parameter matches, contine checking the rest [DEBUG] WebappClassLoader - loadClass(java.lang.String, false) [DEBUG] WebappClassLoader - Returning class from cache [DEBUG] AdvancedGateway - all parameters match [DEBUG] WebappClassLoader - loadClass(org.openamf.invoker.SpringBeanInvoker, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(org.openamf.invoker.SpringBeanInvoker) [DEBUG] WebappClassLoader - Loading class from local repository [DEBUG] DefaultListableBeanFactory - Returning cached instance of singleton bean 'FlashController' [DEBUG] WebappClassLoader - loadClass(org.openamf.invoker.RankedMethod, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(org.openamf.invoker.RankedMethod) [DEBUG] WebappClassLoader - loadClass(java.lang.Comparable, false) [DEBUG] WebappClassLoader - Loading class from local repository [DEBUG] RankedMethod - comparing to methodName: login [DEBUG] RankedMethod - NAME_MATCHES [DEBUG] RankedMethod - NAME_CASE_MATCHES [DEBUG] RankedMethod - PARAM_COUNT_MATCHES [DEBUG] WebappClassLoader - loadClass(org.openamf.util.OpenAMFUtils, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(org.openamf.util.OpenAMFUtils) [DEBUG] WebappClassLoader - Loading class from local repository [DEBUG] OpenAMFUtils - expected class: java.lang.String [DEBUG] OpenAMFUtils - parameter class: java.lang.String [DEBUG] OpenAMFUtils - Decoding parameter: tyler to type: class java.lang.String [DEBUG] WebappClassLoader - loadClass(com.carbonfive.flash.ASTranslatorFactory, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(com.carbonfive.flash.ASTranslatorFactory) [DEBUG] WebappClassLoader - Delegating to parent classloader at end: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/shared/classes/ ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/classes/ file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xercesImpl.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xml-apis.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant-launcher.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-collections-3.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-dbcp-1.2.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-el.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-pool-1.2.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-compiler.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-runtime.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jsp-api.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-common.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-factory.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-java.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-resources.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/servlet-api.jar ----------> Parent Classloader: sun.misc.Launcher$AppClassLoader@1813fac [DEBUG] WebappClassLoader - loadClass(java.lang.NoClassDefFoundErrorBeanInfo, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(java.lang.NoClassDefFoundErrorBeanInfo) [DEBUG] WebappClassLoader - Delegating to parent classloader at end: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/shared/classes/ ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/classes/ file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xercesImpl.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xml-apis.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant-launcher.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-collections-3.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-dbcp-1.2.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-el.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-pool-1.2.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-compiler.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-runtime.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jsp-api.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-common.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-factory.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-java.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-resources.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/servlet-api.jar ----------> Parent Classloader: sun.misc.Launcher$AppClassLoader@1813fac [DEBUG] WebappClassLoader - loadClass(java.lang.LinkageErrorBeanInfo, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(java.lang.LinkageErrorBeanInfo) [DEBUG] WebappClassLoader - Delegating to parent classloader at end: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/shared/classes/ ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/classes/ file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xercesImpl.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xml-apis.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant-launcher.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-collections-3.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-dbcp-1.2.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-el.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-pool-1.2.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-compiler.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-runtime.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jsp-api.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-common.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-factory.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-java.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-resources.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/servlet-api.jar ----------> Parent Classloader: sun.misc.Launcher$AppClassLoader@1813fac [DEBUG] WebappClassLoader - loadClass(java.lang.ErrorBeanInfo, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(java.lang.ErrorBeanInfo) [DEBUG] WebappClassLoader - Delegating to parent classloader at end: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/shared/classes/ ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/classes/ file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xercesImpl.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/endorsed/xml-apis.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant-launcher.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/ant.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-collections-3.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-dbcp-1.2.1.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-el.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/commons-pool-1.2.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-compiler.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jasper-runtime.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/jsp-api.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-common.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-factory.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-java.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/naming-resources.jar file:/usr/local/tomcat/jakarta-tomcat-5.0.28/common/lib/servlet-api.jar ----------> Parent Classloader: sun.misc.Launcher$AppClassLoader@1813fac [DEBUG] JkCoyoteHandler - RESET [DEBUG] ApplicationDispatcher - servletPath=/jsp/uncaughtException.jsp, pathInfo=null, queryString=null, name=null [DEBUG] ApplicationDispatcher - Path Based Forward [DEBUG] JspServlet - JspEngine --> /jsp/uncaughtException.jsp [DEBUG] JspServlet - ServletPath: /jsp/uncaughtException.jsp [DEBUG] JspServlet - PathInfo: null [DEBUG] JspServlet - RealPath: /usr/local/tomcat/jakarta-tomcat-5.0.28/webapps/scribbles/jsp/uncaughtException.jsp [DEBUG] JspServlet - RequestURI: /scribbles/jsp/uncaughtException.jsp [DEBUG] JspServlet - QueryString: null [DEBUG] JspServlet - Request Params: [DEBUG] WebappClassLoader - loadClass(org.apache.jasper.runtime.HttpJspBase, false) [DEBUG] WebappClassLoader - Searching local repositories [DEBUG] WebappClassLoader - findClass(org.apache.jasper.runtime.HttpJspBase) [DEBUG] WebappClassLoader - Delegating to parent classloader at end: StandardClassLoader delegate: true repositories: file:/usr/local/tomcat/jakarta-tomcat-5.0.28/shared/classes/