title: java.lang.NoClassDefFoundError for DecisionPointDictionaryFinder
body: <p>I have ADF project using JDeveloper and I am using Oracle rules to define my rules.
  But <code>DecisionPointDictionaryFinder</code> can not load in the following line of code:</p>
  
  <pre><code>DecisionPointDictionaryFinder dictionaryFinder = new DecisionPointDictionaryFinder(null);
  </code></pre>
  
  <p>In the following code snippet:</p>
  
  <pre><code>public void loadRuleDictionary() throws SDKException, Exception {
  
      BufferedReader reader = null;
  
      try {
  
          reader = new BufferedReader( new InputStreamReader(new FileInputStream(getFile()), "UTF-8"));
  
          DecisionPointDictionaryFinder dictionaryFinder = new DecisionPointDictionaryFinder(null);
          diccionariReglas = RuleDictionary.readDictionary(reader, dictionaryFinder);
  
          List&lt;SDKWarning&gt; warnings = new ArrayList&lt;SDKWarning&gt;();
          List&lt;SDKException&gt; exceptions = new ArrayList&lt;SDKException&gt;();
          diccionariReglas.validate(exceptions, warnings);
          diccionariReglas.update(warnings);
  
      } finally {
          if (reader != null) { 
              reader.close(); 
          }
      }
  }
  </code></pre>
  
  <p>I get the following exceptions in the log:</p>
  
  <pre><code>oracle.jbo.JboException: JBO-29000: It has obtained an unexpected exception: java.lang.NoClassDefFoundError, message=oracle/rules/sdk2/decisionpoint/DecisionPointDictionaryFinder
      at oracle.jbo.pool.ResourcePool.createResource(ResourcePool.java:599)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2473)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2347)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3246)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:572)
      at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:505)
      at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:500)
      at oracle.jbo.client.Configuration.getApplicationModule(Configuration.java:1609)
      at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1514)
      at oracle.jbo.client.Configuration.createRootApplicationModule(Configuration.java:1485)
      at ad.govern.viator.application.ov.controller.backing.security.Login.getService(Login.java:359)
      at ad.govern.viator.application.ov.controller.backing.security.Login.entrar(Login.java:110)
      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.sun.el.parser.AstValue.invoke(Unknown Source)
      at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
      at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
      at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
      at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:889)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:379)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
      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:205)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
      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 ad.govern.viator.application.ov.controller.security.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:63)
      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:315)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
      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:139)
      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)
  Caused by: java.lang.NoClassDefFoundError: oracle/rules/sdk2/decisionpoint/DecisionPointDictionaryFinder
      at ad.govern.viator.application.common.utilitats.DiccionariReglas.loadRuleDictionary(DiccionariReglas.java:111)
      at ad.govern.viator.application.bo.module.administracio.gestio.riscos.GestioRiscosModuleImpl.&lt;init&gt;(GestioRiscosModuleImpl.java:89)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
      at java.lang.Class.newInstance0(Class.java:355)
      at java.lang.Class.newInstance(Class.java:308)
      at oracle.jbo.server.ComponentObjectImpl.createRef(ComponentObjectImpl.java:217)
      at oracle.jbo.server.ApplicationModuleImpl.createApplicationModuleImpl(ApplicationModuleImpl.java:4223)
      at oracle.jbo.server.ApplicationModuleDefImpl.loadApplicationModule(ApplicationModuleDefImpl.java:859)
      at oracle.jbo.server.ApplicationModuleDefImpl.loadComponents(ApplicationModuleDefImpl.java:937)
      at oracle.jbo.server.ApplicationModuleImpl.createApplicationModuleImpl(ApplicationModuleImpl.java:4241)
      at oracle.jbo.server.ApplicationModuleDefImpl.loadApplicationModule(ApplicationModuleDefImpl.java:859)
      at oracle.jbo.server.ApplicationModuleDefImpl.loadComponents(ApplicationModuleDefImpl.java:937)
      at oracle.jbo.server.ApplicationModuleImpl.createRootApplicationModule(ApplicationModuleImpl.java:493)
      at oracle.jbo.server.ApplicationModuleHomeImpl.create(ApplicationModuleHomeImpl.java:87)
      at oracle.jbo.common.ampool.DefaultConnectionStrategy.createApplicationModule(DefaultConnectionStrategy.java:158)
      at oracle.jbo.common.ampool.DefaultConnectionStrategy.createApplicationModule(DefaultConnectionStrategy.java:73)
      at oracle.jbo.common.ampool.ApplicationPoolImpl.instantiateResource(ApplicationPoolImpl.java:2913)
      at oracle.jbo.pool.ResourcePool.createResource(ResourcePool.java:580)
      ... 65 more
  </code></pre>
  
  <p>I tried to obtain the libraries of oracle rules in the classpath and everything but to no avail. the thing is that the class file is right there and there is no error at compile time whatsoever.</p>