Hi,
I am facing issues implementing integration of ADF application with EBS. Basically i am trying to use the session shared by EBS in ADF application as mentioned in EBS SDK document (E28169-02) and refered code in https://community.oracle.com/message/10896038 .
But wrappedRequest.getAppsSession() returns null and getting null pointer exception at session.getCurrentState().getIcxCookieStatus()
Exception
java.lang.NullPointerException
at bean.sessionManagePL.beforePhase(sessionManagePL.java:78)
at oracle.adfinternal.controller.lifecycle.ADFLifecycleImpl$PagePhaseListenerWrapper.beforePhase(ADFLifecycleImpl.java:558)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.internalDispatchBeforeEvent(LifecycleImpl.java:100)
at oracle.adfinternal.controller.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.startPageLifecycle(ADFPhaseListener.java:197)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$1.after(ADFPhaseListener.java:369)
at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:88)
at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:532)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:219)
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:211)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:128)
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.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
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:163)
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:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
If i pass true parameter to getAppsSession
Session session = wrappedRequest.getAppsSession(true);
then it's giving bellow error
java.sql.SQLException: ORA-20001: Oracle error -20001: ORA-20001: Oracle error -2074: ORA-02074: cannot SET NLS in a distributed transaction
has been detected in fnd_global.set_nls.set_parameter('NLS_LANGUAGE','AMERICAN').
has been detected in fnd_global.set_nls.
ORA-06512: at "APPS.APP_EXCEPTION", line 72
ORA-06512: at "APPS.FND_GLOBAL", line 271
ORA-06512: at "APPS.FND_GLOBAL", line 1575
ORA-06512: at "APPS.FND_GLOBAL", line 1603
ORA-06512: at "APPS.FND_SESSION_MANAGEMENT", line 1053
ORA-06512: at "APPS.FND_SESSION_MANAGEMENT", line 1299
ORA-06512: at "APPS.FND_AOLJ_UTIL", line 433
ORA-06512: at "APPS.FND_AOLJ_UTIL", line 241
ORA-06512: at line 1
Please help me
Thanks in advance,
Srinadh.
public class sessionManagePL implements PagePhaseListener {
public sessionManagePL() {
super();
}
AppsRequestWrapper wrappedRequest = null;
HttpServletRequest request = null;
HttpServletResponse response = null;
String currentUser = null;
String currentUserId = null;
public void beforePhase(PagePhaseEvent pagePhaseEvent) {
if (pagePhaseEvent.getPhaseId() == Lifecycle.INIT_CONTEXT_ID) {
String agent = null;
System.out.println("In before Phase");
FacesContext fctx = FacesContext.getCurrentInstance();
request =
(HttpServletRequest)fctx.getExternalContext().getRequest();
response =
(HttpServletResponse)fctx.getExternalContext().getResponse();
CookieStatus icxCookieStatus = null;
try {
Connection EBSconn = ConnectionProvider.getConnection();
EBiz instance = EBizUtil.getEBizInstance();
wrappedRequest =
new AppsRequestWrapper(request, response, EBSconn,
instance);
System.out.println("Wrapped Request"+wrappedRequest);
Session session = wrappedRequest.getAppsSession();
System.out.println("Session"+session);
icxCookieStatus =
session.getCurrentState().getIcxCookieStatus();
agent = wrappedRequest.getEbizInstance().getAppsServletAgent();
if (!icxCookieStatus.equals(CookieStatus.VALID)) {
response.sendRedirect(agent + "AppsLocalLogin.jsp");
return;
}
currentUser = session.getUserName();
System.out.println(""+currentUser);
currentUserId = session.getUserId();
} catch (Exception ob) {
ob.printStackTrace();
try {
response.sendRedirect("http://ab.abc.net:8090/OA_HTML/OA.jsp?OAFunc=OAHOMEPAGE");
return;
} catch (IOException e) {
}
}
FacesMessage message =
new FacesMessage("Session is : " + icxCookieStatus + " " +
currentUser + " " + currentUserId);
fctx.addMessage(null, message);
}
}
}