Skip to Content
0
Former Member
Nov 06, 2006 at 12:13 PM

Really strange ClassCastException.....

19 Views

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