Hey all,
I've got a lot of trouble recently, having a ProgramObject (implementing the IProgramBase Java Interface), creating a logonToken and using this token to connect to the REST SDK(s).
To provide some code:
public class Test implements IProgramBase { public void run(final IEnterpriseSession enterpriseSession, final IInfoStore infoStore, final String[] arguments) throws SDKException { String token = enterpriseSession.getLogonTokenMgr().getDefaultToken(); //TODO add some webservice calls } }
Usually this works like a charm, the token is valid and I can work with the REST webservices as long as the token is valid (== enterpriseSession is valid)
In a clustered environment, its a bit tricky to connect to the right WACS server for the right cluster member, but even then, the token seems to be invalid from time to time - yet I haven't been able to figure out when.
The error message for me is
java.io.IOException: Server returned HTTP response code: 500 for URL: http://server:6405/biprws/raylight/v1/documents/123/properties
WACS Server log shows
Interner Fehler ("Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002)")
com.sap.webi.raylight.RaylightException: Interner Fehler ("Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002)")
at com.sap.webi.raylight.context.Messenger.internalError(Messenger.java:91)
at com.sap.webi.raylight.actions.ActionDispatcher.handleUnexpectedError(ActionDispatcher.java:142)
at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:122)
at com.sap.webi.raylight.AbstractRaylightServiceDocument.getProperties(AbstractRaylightServiceDocument.java:576)
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 org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:164)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)
at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletController.java:93)
at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:763)
Caused by: com.businessobjects.sdk.core.server.CommunicationException$UnexpectedServerException: Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002)
at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:152)
at com.businessobjects.sdk.core.exception.ExceptionBuilder.make(ExceptionBuilder.java:109)
at com.businessobjects.sdk.core.server.internal.session.SelectDataFromCMSCommand.execute(SelectDataFromCMSCommand.java:116)
at com.businessobjects.sdk.core.server.internal.corba.CorbaServerImpl.doProcess(CorbaServerImpl.java:79)
at com.businessobjects.sdk.core.server.internal.AbstractServer.processIt(AbstractServer.java:171)
at com.businessobjects.sdk.core.server.internal.AbstractServer.process(AbstractServer.java:133)
at com.sap.webi.raylight.util.impl.CmsRequestHelper.process(CmsRequestHelper.java:260)
at com.sap.webi.raylight.util.impl.CmsRequestHelper.process(CmsRequestHelper.java:284)
at com.sap.webi.raylight.util.impl.CmsRequestHelper.documentExist(CmsRequestHelper.java:89)
at com.sap.webi.raylight.context.RaylightContext.openDocument(RaylightContext.java:494)
at com.sap.webi.raylight.context.RaylightContext.getDocument(RaylightContext.java:431)
at com.sap.webi.raylight.context.RaylightContext.getDocument(RaylightContext.java:395)
at com.sap.webi.raylight.context.RaylightContext.getDocument(RaylightContext.java:129)
at com.sap.webi.raylight.actions.document.properties.GetDocumentPropertiesAction.execute(GetDocumentPropertiesAction.java:26)
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.sap.webi.raylight.actions.ActionInvoker.invokeWith(ActionInvoker.java:123)
at com.sap.webi.raylight.actions.ActionDispatcher.invoke(ActionDispatcher.java:105)
... 48 more
Caused by: com.crystaldecisions.sdk.exception.SDKException$OCAFramework: Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002)
cause:com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$LogonFailover: Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002)
cause:com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
detail:Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002) IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
detail:Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002) IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
at com.crystaldecisions.sdk.exception.SDKException.map(SDKException.java:142)
at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStore.<init>(InternalInfoStore.java:176)
at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStoreFactory.makeOCCA(InternalInfoStoreFactory.java:119)
at com.crystaldecisions.sdk.occa.infostore.internal.InfoStore.<init>(InfoStore.java:87)
at com.crystaldecisions.sdk.occa.infostore.internal.InfoStoreFactory.makeOCCA(InfoStoreFactory.java:62)
at com.businessobjects.sdk.core.server.internal.session.SelectDataFromCMSCommand.execute(SelectDataFromCMSCommand.java:58)
... 65 more
Caused by: com.crystaldecisions.enterprise.ocaframework.OCAFrameworkException$LogonFailover: Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002)
cause:com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
detail:Verbindung zum CMS server:6400 kann nicht wiederhergestellt werden. Die Sitzung wurde abgemeldet oder ist abgelaufen. (FWM 01002) IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
at com.crystaldecisions.enterprise.ocaframework.FailoverLogonService.logonWithToken(FailoverLogonService.java:293)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.reconnectCMS(ManagedSession.java:771)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.validateServer(ManagedSession.java:756)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.validateStatelessService(ManagedSession.java:574)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.newService(ManagedSession.java:983)
at com.crystaldecisions.enterprise.ocaframework.ManagedSession.get(ManagedSession.java:278)
at com.crystaldecisions.enterprise.ocaframework.ManagedSessions.get(ManagedSessions.java:299)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getManagedService_aroundBody4(ServiceMgr.java:539)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getManagedService_aroundBody5$advice(ServiceMgr.java:512)
at com.crystaldecisions.enterprise.ocaframework.ServiceMgr.getManagedService(ServiceMgr.java:1)
at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStore.init(InternalInfoStore.java:1442)
at com.crystaldecisions.sdk.occa.infostore.internal.InternalInfoStore.<init>(InternalInfoStore.java:172)
... 69 more
Caused by: com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuse: IDL:img.seagatesoftware.com/OCA/oca_abuse:3.2
at com.crystaldecisions.enterprise.ocaframework.idl.OCA.oca_abuseHelper.read(oca_abuseHelper.java:106)
at com.crystaldecisions.enterprise.ocaframework.idl.OCA.OCAs._LogonEx6Stub.LogonWithTokenEx5(_LogonEx6Stub.java:488)
at com.crystaldecisions.enterprise.ocaframework.FailoverLogonService.logonWithToken(FailoverLogonService.java:226)
... 80 more
The translation is
The session has been logged off or has expired. (FWM 01002)
Any hints on this topic?
Regards
Jan