JDeveloper를 사용하는 ADF 프로젝트가 있고 Oracle 규칙을 사용하여 규칙을 정의하고 있습니다. 다음 코드에서DecisionPointDictionaryFinder에 대한 java.lang.NoClassDefFoundError
DecisionPointDictionaryFinder dictionaryFinder = new DecisionPointDictionaryFinder(null);
: 그러나 DecisionPointDictionaryFinder
코드의 다음 줄에로드 할 수 없습니다
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<SDKWarning> warnings = new ArrayList<SDKWarning>();
List<SDKException> exceptions = new ArrayList<SDKException>();
diccionariReglas.validate(exceptions, warnings);
diccionariReglas.update(warnings);
} finally {
if (reader != null) {
reader.close();
}
}
}
나는 로그에 다음과 같은 예외가 얻을 :
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.<init>(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
I을 classpath에서 오라클 규칙의 라이브러리를 얻으려고했지만 모든 것은 쓸모가 없다. 문제는 클래스 파일이 바로 거기에 있고 컴파일 타임에 오류가 없다는 것입니다.
추가 한 것과 함께 병을 다시 추가하여 해결했습니다! 그 라이브러리에 관한 jdeveloper에 대한 모호성이있는 것 같습니다! – GingerHead
그 링크가 유용할까요? – Gundamaiah
글쎄, 내 경우에는 아니지만, 어쨌든 고마워. – GingerHead