Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps

Wednesday, February 25, 2009

java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException

Recently James gave an rm command on the erpapp directory which has appl, comn, 8.0.6 and iAS directories, thinking that it was a blank directory.  He realised after about 30 seconds and cancelled the command.  However many files had been deleted.  He told me, and based on the errors which were appearing in the logs, I checked $OA_JAVA and found that $OA_JAVA/oracle/apps/fnd directory was missing.  I copied it from another instance on the same techstack level.  However this error was still coming in jvm logs:

java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException
        at oracle.cabo.ui.xml.UINodeUtils.createDefaultManager(Unknown Source)
        at oracle.adf.mds.internal.parse.ParserUtils.createDefaultManager(ParserUtils.java:218)
        at oracle.adf.mds.internal.parse.ParserUtils.createNode(ParserUtils.java:279)
        at oracle.adf.mds.internal.parse.ParserUtils.createNode(ParserUtils.java:115)
        at oracle.adf.mds.adapters.DBAdapter.getElementData(DBAdapter.java:324)
        at oracle.adf.mds.internal.MetadataManagerBase.findElement(MetadataManagerBase.java:1244)
        at oracle.adf.mds.MElement.findElement(MElement.java:97)
        at oracle.apps.fnd.framework.webui.JRAD2AKMapper.getRootMElement(JRAD2AKMapper.java:503)
        at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getWebBeanTypeDataFromJRAD(OAWebBeanFactoryImpl.java:3719)
        at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getRootApplicationModuleClass(OAWebBeanFactoryImpl.java:3452)
        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:937)
        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:508)
        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:429)
        at _oa__html._OA._jspService(_OA.java:84)
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
        at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
        at oracle.jsp.JspServlet.service(JspServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
        at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
        at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
        at _oa__html._OA._jspService(_OA.java:94)
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
        at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
        at oracle.jsp.JspServlet.service(JspServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
        at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
        at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
        at _oa__html._OA._jspService(_OA.java:94)
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
        at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
        at oracle.jsp.JspServlet.service(JspServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
        at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
        at org.apache.jserv.JServConnection.run(JServConnection.java:294)
        at java.lang.Thread.run(Thread.java:534)

After copying a few more class files which were present in $OA_JAVA, the error changed:

java.lang.NoClassDefFoundError: org/apache/commons/el/ExpressionEvaluatorImpl
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at oracle.cabo.ui.xml.UINodeUtils.createDefaultManager(Unknown Source)
        at oracle.adf.mds.internal.parse.ParserUtils.createDefaultManager(ParserUtils.java:218)
        at oracle.adf.mds.internal.parse.ParserUtils.createNode(ParserUtils.java:279)
        at oracle.adf.mds.internal.parse.ParserUtils.createNode(ParserUtils.java:115)
        at oracle.adf.mds.adapters.DBAdapter.getElementData(DBAdapter.java:324)
        at oracle.adf.mds.internal.MetadataManagerBase.findElement(MetadataManagerBase.java:1244)
        at oracle.adf.mds.MElement.findElement(MElement.java:97)
        at oracle.apps.fnd.framework.webui.JRAD2AKMapper.getRootMElement(JRAD2AKMapper.java:503)
        at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getWebBeanTypeDataFromJRAD(OAWebBeanFactoryImpl.java:3719)
        at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getRootApplicationModuleClass(OAWebBeanFactoryImpl.java:3452)
        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:938)
        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:509)
        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:430)
        at _oa__html._OA._jspService(_OA.java:84)
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
        at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
        at oracle.jsp.JspServlet.service(JspServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
        at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
        at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
        at _oa__html._OA._jspService(_OA.java:94)
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
        at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
        at oracle.jsp.JspServlet.service(JspServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
        at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
        at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
        at _oa__html._OA._jspService(_OA.java:94)
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
        at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
        at oracle.jsp.JspServlet.service(JspServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
        at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
        at org.apache.jserv.JServConnection.run(JServConnection.java:294)
        at java.lang.Thread.run(Thread.java:534)

Finally I copied the whole $OA_JAVA directory from another instance.  Once that was done, the errors stopped appearing.  You may face a similar issue if your clone omits some files in $OA_JAVA.

No comments: