Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Custom policies something failing with java.lang.NoClassDefFoundError

Hello RAM team,

We are using RAM 7.5.0.2. We have uploaded the custom policy bundled zip file with:

1.) custom policy jar file

2.) ramclient jar file and

3.) axis jar file.

in the RAM Administration page under Custom Extensions.

However, we are facing this issue frequently where our custom policies fail with the error :

This policy encountered an error during execution.

java.lang.NoClassDefFoundError: com/ibm/ram/client/RAMSession at com.deloitte.dsam.policy.VersioningPolicy.test(VersioningPolicy.java:127) at com.ibm.ram.repository.lifecycle.AssetLifecycleManager.runAssetPolicies(AssetLifecycleManager.java:2475) at com.ibm.ram.repository.lifecycle.AssetLifecycleManager.handleEventCycle(AssetLifecycleManager.java:1734) at com.ibm.ram.repository.lifecycle.AssetLifecycleManager.handleEvent(AssetLifecycleManager.java:524) at com.ibm.ram.repository.lifecycle.AssetLifecycleManager.save(AssetLifecycleManager.java:406) at com.ibm.ram.repository.lifecycle.AssetLifecycleManager.save(AssetLifecycleManager.java:361) at com.ibm.ram.repository.assets.AssetManager.primUpdateAssetWithState(AssetManager.java:3606) at com.ibm.ram.repository.assets.AssetManager.updateAssetWithState(AssetManager.java:3425) at com.ibm.ram.repository.assets.AssetManager.updateAsset(AssetManager.java:3395) at com.ibm.ram.repository.assets.AssetManager.updateAsset(AssetManager.java:3369) at com.ibm.ram.repository.web.upload.SubmitAssetHandler.uploadAsset(SubmitAssetHandler.java:276) at com.ibm.ram.repository.web.upload.SubmitAssetHandler.doFinishAction(SubmitAssetHandler.java:926) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:589) at org.apache.el.parser.AstValue.invoke(AstValue.java:159) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:387) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:458) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:763) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1663) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1597) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131) at com.ibm.ram.repository.web.security.RAMServletFilter.doFilter(RAMServletFilter.java:514) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116) at com.ibm.ram.repository.web.filters.JavascriptSecurityFilter.doFilter(JavascriptSecurityFilter.java:33) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116) at com.ibm.ram.repository.web.filters.GZipFilter.doFilter(GZipFilter.java:42) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)
When this issue occurs, the workaround approach that we follow is we go to the "Administration page" under Custom Extensions, click on modify and reupload the same bundled zip file and the custom policies start working fine.
Would you have any thoughts on what may cause this error to happen?
Please let me know if you need further information.
Thanks!
Regards,
Sripriya

0 votes



One answer

Permanent link
It more than just ramclient.jar. you need all of the jars out of the ramclient.zip (except the ANT jars).

PS: In the latest version of RAM (actually starting with RAM 7510) you not supply the client jars at all if you are trying to access the same RAM instance in the policy as the RAM that is running. In that case the AssetPolicy.getPolicyContext().getRAMSession() gives you a RAMSession to work with. This RAMSession is far more efficient than the ramclient's RAMSession because it knows how to talk directly to RAM without going through HTTP.

0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details

Question asked: Oct 15 '13, 2:24 p.m.

Question was seen: 4,041 times

Last updated: Oct 17 '13, 11:02 a.m.

Confirmation Cancel Confirm