Hi all,
I have created a portal service with the following code:
[code]
private Hashtable getEnvironment(IUser user) {
Hashtable environment = new Hashtable();
if(user != null)
environment.put("NavigationPrincipal", user);
return environment;
}
protected NavigationNodes getRealInitialNodes(IUser user) throws NamingException {
NavigationNodes initialNodes = null;
NavigationNodes realInitialNodes = new NavigationNodes();
INavigationService navService = (INavigationService)PortalRuntime.getRuntimeResources().getService("com.sap.portal.navigation.service.navigation");
<b>initialNodes = navService.getInitialNodes(getEnvironment(user));</b>
//
// some checking etc, not important for the issue...
//
return initialNodes;
}
[/code]
This piece of code works perfectly on our development environment, but it fails on our QA environment, with the following stacktrace (thrown from the bold line of code above):
[code]
[EXCEPTION]
#1#com.sapportals.portal.prt.runtime.PortalRuntimeException: PortalRuntimeException
at com.sapportals.portal.prt.service.soap.processor.SOAPPortalServiceProcessor.invokeWebServiceMethod(SOAPPortalServiceProcessor.java:32)
at com.sapportals.portal.prt.service.soap.processor.InvokerProcessor.generateCallOnPortalService(InvokerProcessor.java:200)
at com.sapportals.portal.prt.service.soap.processor.InvokerProcessor.invokePortalSOAPProcessor(InvokerProcessor.java:146)
at com.sapportals.portal.prt.service.soap.SOAPServiceManager.invokeProcessor(SOAPServiceManager.java:228)
at com.sapportals.portal.prt.service.soap.SOAPServiceManager.invokeMethodOnServices(SOAPServiceManager.java:209)
at com.sapportals.portal.prt.service.soap.SOAPServiceManager.consumeSOAPMessage(SOAPServiceManager.java:133)
at com.sapportals.portal.prt.service.soap.SOAPConnection.processSOAPPost(SOAPConnection.java:271)
at com.sapportals.portal.prt.service.soap.SOAPConnection.handleRequest(SOAPConnection.java:185)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged(Native Method)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
Caused by: java.lang.ClassCastException
at com.sapportals.portal.navigation.cache.ConnectorsUniqueKey.<init>(ConnectorsUniqueKey.java:40)
at com.sapportals.portal.navigation.cache.CachedNavigationService._getUniqueCacheKey(CachedNavigationService.java:367)
at com.sapportals.portal.navigation.cache.CachedNavigationService.getInitialNodes(CachedNavigationService.java:140)
at com.shell.gep.service.navigation.toplevel.ToplevelNavigationNodes.getRealInitialNodes(ToplevelNavigationNodes.java:289)
at com.shell.gep.service.navigation.toplevel.ToplevelNavigationNodes.getNavigationNodes(ToplevelNavigationNodes.java:252)
at com.shell.gep.service.navigation.toplevel.ToplevelNavigationNodes.getFirstlevelNavigationNodes(ToplevelNavigationNodes.java:156)
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:324)
at com.sapportals.portal.prt.service.soap.processor.SOAPPortalServiceProcessor.invokeWebServiceMethod(SOAPPortalServiceProcessor.java:25)
... 27 more
[/code]
Could it be due to some classloading issue? How to avoid?
Any input will be greatly appreciated and rewarded with a can of beer
Kind regards,
Robin van het Hof