0 Replies Latest reply: Apr 4, 2011 11:51 AM by 852675 RSS

    ADF

    852675
      Hi,

      I have an unbounded taskflow that calls out an external webapp (via the url-view taskflow activity). Right before the end user is redirected to the external app a save point is captured and the save point restore url is passed as a 'callback' url for the external app to redirect the user back to ADF once he/she is finished.

      It all worked fine until a major code check in went in. Since then we're getting some deserialization errors when restoring the save point (see the stacktrace below). The ADF app is deployed to Weblogic 10.3.4.0 ADF-enabled domain. I am using jdev build JDEVADF_11.1.1.4.0_GENERIC_101227.1736.5923 to build and deploy the ADF app. The stacktrace suggests that there's a serious class loading issue here - the deserializer uses the com.sun.el package that is loaded from the server-level classloader (<bea_home>/oracle_common/modules/glassfish.el_2.2.0.jar) that further wants to load javax.servlet.jsp.jstl.core. The latter should be loaded from <bea_home>/wlserver_10.3/common/deployable-libraries/jstl-1.2.war which is deployed as a shared library in an ADF-enabled domain. As far as I cantell there's no way such classloading could work with Class.forName()

      How to solve this issue (not using index expressions is not an option ;) ) ?

      The stacktrace in question:
      oracle.adfinternal.controller.savepoint.SavePointException: ADFC-08026: The ADF Controller is unable to deserialize the savepoint.
           at oracle.adfinternal.controller.savepoint.SavePointUtil.createAndLogSavePointException(SavePointUtil.java:54)
           at oracle.adfinternal.controller.savepoint.SavePointDBPersistManager.deserializeSavePoint(SavePointDBPersistManager.java:564)
           at oracle.adfinternal.controller.savepoint.SavePointDBPersistManager.retrieveSavePoint(SavePointDBPersistManager.java:428)
           at oracle.adfinternal.controller.savepoint.DBSavePointManagerImpl.getSavePointImpl(DBSavePointManagerImpl.java:66)
           at oracle.adfinternal.controller.savepoint.SavePointManagerImpl.restoreSavePoint(SavePointManagerImpl.java:387)
           at oracle.adfinternal.controller.activity.SavePointRestoreActivityLogic.restoreSavePoint(SavePointRestoreActivityLogic.java:86)
           at oracle.adfinternal.controller.engine.ControlFlowEngine.invokeSavePointResore(ControlFlowEngine.java:471)
           at oracle.adfinternal.controller.application.SavePointRestoreHandler.invokeSavePointRestoreByUrl(SavePointRestoreHandler.java:91)
           at oracle.adfinternal.controller.application.SavePointRestoreHandler.doCreateView(SavePointRestoreHandler.java:61)
           at oracle.adfinternal.controller.application.BaseRequestHandlerImpl.createView(BaseRequestHandlerImpl.java:57)
           at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.createView(ViewHandlerImpl.java:95)
           at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._restoreView(LifecycleImpl.java:639)
           at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:300)
           at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
           at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
           at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
           at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
           at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
           at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter(SSOSessionSynchronizationFilter.java:276)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
           at java.security.AccessController.doPrivileged(Native Method)
           at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
           at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
           at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
           at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
           at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
           at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
           at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
           at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
           at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
      Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.IndexedValueExpression
           at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
           at java.security.AccessController.doPrivileged(Native Method)
           at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
           at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
           at java.lang.Class.forName0(Native Method)
           at java.lang.Class.forName(Class.java:247)
           at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
           at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
           at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at java.util.HashMap.readObject(HashMap.java:1030)
           at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
           at java.lang.reflect.Method.invoke(Method.java:597)
           at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at com.sun.el.lang.VariableMapperImpl.readExternal(Unknown Source)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at com.sun.el.ValueExpressionImpl.readExternal(Unknown Source)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:248)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:248)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:248)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at org.apache.myfaces.trinidad.component.TreeState.readExternal(TreeState.java:249)
           at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
           at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
           at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
           at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
           at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
           at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
           at oracle.adfinternal.controller.savepoint.SavePointDBPersistManager.deserializeSavePoint(SavePointDBPersistManager.java:554)
           ... 53 more