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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.