Skip to Main Content

Java Development Tools

How to resolve java.lang.NoSuchMethodError

ChristianM0147Sep 15 2021

Hello Community.
Im currently using JDeveloper Version 12.2.1.4.0.
My Problem is that after the successful deployment of the app to my weblogic 12c server i face following error if i try to access the website:
Error 500--Internal Server Error

java.lang.NoSuchMethodError: oracle.adf.share.mds.ADFSessionOptions.addChangeListener(Loracle/adf/share/mds/ADFSessOptsChangeListener;)Z
	at oracle.jbo.mom.DefinitionManager.registerDefMgrWithSessOpts(DefinitionManager.java:3342)
	at oracle.jbo.mom.DefinitionManager.getCurrentDefinitionContext(DefinitionManager.java:5465)
	at oracle.jbo.mom.DefinitionManager.getObjectManagerDef(DefinitionManager.java:1074)
	at oracle.jbo.uicli.mom.JUMetaObjectManager.isStatelessApplication(JUMetaObjectManager.java:569)
	at oracle.adf.model.servlet.HttpBindingRequestHandler.initADFContext(HttpBindingRequestHandler.java:71)
	at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:98)
	at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:196)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
	at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:502)
	at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:502)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:327)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:229)
	at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
	at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:137)
	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:460)
	at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:120)
	at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:217)
	at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:81)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
	at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:220)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
	at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
	at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436)
	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402)
	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
	at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
	at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285)
	at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201)
	at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
	at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572)
	at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255)
	at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
	at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)

Just for clarification, if i run the application locally on my integrated server it works fine.
So what i found out is that im missing the method addChangeListener in the class ADFSessionOptions on the Server. How can that be?
I already checked the libraries selected for Deployment (rightclick on ViewController -> Project properties-> Deployment -> edit Deployment Profile -> Contributors / Library Dependencies) the library BC4J Runtime which includes ADFSessionOptions is checked in both tabs so it should be used on the server, right? Could it be that the library needs to be updated? if so, how?

Comments
Post Details
Added on Sep 15 2021
11 comments
1,284 views