This discussion is archived
5 Replies Latest reply: Mar 27, 2013 1:10 PM by user721352 RSS

Oracle ADF task flow setup failing- deployment issue

Phanikanth Pro
Currently Being Moderated
Hi Experts,

We are facing issue while deploying the ADF taskflow to Oracle webcenter portal/application server.

We will need your help to get any pointers from your Oracle network to help resolve.
Details of issue are as below.

Please help ASAP.
----------------------------------------
Problem Statement: Issue in the ADF taskflow while it is deployed on Oracle Webcenter Portal/Application server (the ADF taskflow is fetching data from PL/SQL procedure using table/record objects as OUT parameter, which is running fine in Jdeveloper).
Problem Description:
From ADF task flow we are invoking a PL/SQL procedure, which is returning a PL/SQL objects as an OUT parameter, some of these objects are of TABLE TYPE and one of RECORD TYPE. We are invoking this oracle procedure and fetching the object using jdbc. The object to which we are mapping this PL/SQL object is a custom java type object. We are using Jdeveloper 11.1.1.4 and Oracle ADF for this and we are able to successfully fetch the object using the code snippet #1 attached below.
However, when we deploying the same code, i.e. the above ADF task flow in the Webcenter Portal server 11.1.1.4, inside the Webcenter portal application, it doesn’t work and give the below error, error snippet #2 below.
Options tried: Initially we were using oracle.sql.STRUCT to handle the PL/SQL object, we tried changing this to weblogic.jdbc.wrapper.Struct and also java.sql.Struct, however we are still getting same error.
The objective is to get the data from PL/SQL procedure in objects (record, table) as OUT parameters in ADF taskflow deployed on Oracle webcenter portal/application server.
******Code Snippet #1**************************
txn = getDBTransaction();
Connection con =
((DBTransactionImpl) txn).getPersistManagerConnection();
st = (OracleCallableStatement) con.prepareCall(callfetchOA);

st.setString(1, so_number);
st.setString(2,
generate_pdf); //generate_pdf should be passed as N in case of FetchOA and Y in case of Generate PDF
st.setString(3, so_line_id);
st.registerOutParameter(4, OracleTypes.STRUCT, headerTrxObj);
st.registerOutParameter(5, OracleTypes.ARRAY, lineTrxTypeObj);
st.registerOutParameter(6, OracleTypes.ARRAY, fetchFeeLineTypeObj);
st.registerOutParameter(7, OracleTypes.ARRAY, fetchAdSizeTypeObj);
st.registerOutParameter(8, OracleTypes.ARRAY, fetchChannelTypeObj);
st.registerOutParameter(9, OracleTypes.ARRAY, fetchMarketTypeObj);
st.registerOutParameter(10, OracleTypes.ARRAY, slaTypeObj);
st.registerOutParameter(11, OracleTypes.NUMBER);
st.registerOutParameter(12, OracleTypes.VARCHAR);
st.execute();


Object[] header = st.getSTRUCT(4).getAttributes();

***** error snippet #2**********************
java.lang.ClassCastException: weblogic.jdbc.wrapper.Struct_oracle_sql_JAVA_STRUCT cannot be cast to oracle.sql.STRUCT
at weblogic.jdbc.wrapper.CallableStatement_oracle_jdbc_driver_OracleCallableStatementWrapper.getSTRUCT(Unknown Source)
at com.valassis.service.BaseAppModuleImpl.fetchOrder(BaseAppModuleImpl.java:1496)
at com.valassis.model.beans.vo.OrderVO.fetchOrder(OrderVO.java:177)
at com.valassis.model.beans.vo.OrderVO.testSaveOrder(OrderVO.java:399)
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 com.sun.el.parser.AstValue.invoke(Unknown Source)
at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:312)
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.portlet.client.adapter.adf.ADFPortletFilter.doFilter(ADFPortletFilter.java:32)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.webcenter.framework.events.dispatcher.EventDispatcherFilter.doFilter(EventDispatcherFilter.java:44)
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.wcps.client.PersonalizationFilter.doFilter(PersonalizationFilter.java:75)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.webcenter.content.integration.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:168)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.webcenter.lifecycle.filter.LifecycleLockFilter.doFilter(LifecycleLockFilter.java:151)

Thanks
Phani

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points