ViPR SRM: SNMP Device Discovery Returning "Error 404: The requested resource is not available."
Summary: ViPR SRM: SNMP Device Discovery Returning "Error 404: The requested resource is not available."
Symptoms
When attempting to open "SNMP Device Discovery" in Administration > Centralized Management > Modules, the following error is encountered:
"Error 404: The requested resource is not available."
After encountering the above message, the following error can be seen in the catalina logs on the frontend host:
WARNING: Couln't create accessor for FLOW-WHATIF-SCENARIOS -> ( datasource=com.watch4net.apg.v2.gui.resource.database.FinalizableDataSource@13518f37, settings={mapping=FLOW-WHATIF-SCENARIOS.xml, table=whatif_scenarios} ), retrying later...
java.lang.IllegalAccessException: can't find a suitable configuration file for accessor FLOW-WHATIF-SCENARIOS:{mapping=FLOW-WHATIF-SCENARIOS.xml, table=whatif_scenarios} in /opt/APG/property-mapping
at com.watch4net.apg.v2.modules.database.FLOW.DatabaseAccessor.getConfigurationFile(DatabaseAccessor.java:228)
at com.watch4net.apg.v2.modules.database.FLOW.DatabaseAccessor.getConfiguration(DatabaseAccessor.java:241)
at com.watch4net.apg.v2.modules.database.FLOW.DatabaseAccessor.<init>(DatabaseAccessor.java:150)
at com.watch4net.apg.v2.modules.database.FLOW.DatabaseAccessorFactory.createDatabaseAccessor(DatabaseAccessorFactory.java:103)
at com.watch4net.apg.v2.gui.database.ResourceDedicatedDatabaseAccessorProvider$UpdateContext.createAccessorIfNeeded(ResourceDedicatedDatabaseAccessorProvider.java:240)
at com.watch4net.apg.v2.gui.database.ResourceDedicatedDatabaseAccessorProvider$UpdateContext.processPendingEvents(ResourceDedicatedDatabaseAccessorProvider.java:285)
at com.watch4net.apg.v2.gui.database.ResourceDedicatedDatabaseAccessorProvider.checkAndReload(ResourceDedicatedDatabaseAccessorProvider.java:119)
at com.watch4net.apg.v2.gui.database.AbstractGlobalDatabaseAccesssor.reloadAndCheckIfNeeded(AbstractGlobalDatabaseAccesssor.java:267)
at com.watch4net.apg.v2.gui.database.AbstractGlobalDatabaseAccesssor.validate(AbstractGlobalDatabaseAccesssor.java:289)
at com.watch4net.apg.v2.gui.database.DatabaseCheckingTask.checkAccessors(DatabaseCheckingTask.java:143)
at com.watch4net.apg.v2.gui.database.DatabaseCheckingTask.run(DatabaseCheckingTask.java:173)
at com.watch4net.apg.v2.gui.database.DatabaseCheckingTask.initialize(DatabaseCheckingTask.java:161)
at com.watch4net.apg.v2.gui.database.DatabaseCheckingTask$ApplicationListener.onStartup(DatabaseCheckingTask.java:78)
at com.watch4net.apg.gui.servlet.ApplicationContextListener.contextInitialized(ApplicationContextListener.java:131)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4709)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:676)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:602)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:503)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.watch4net.apg.v2.tomcat.forked.Bootstrap.launch(Bootstrap.java:66)
at com.watch4net.apg.v2.tomcat.forked.Bootstrap.main(Bootstrap.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.watch4net.component.loader.util.ComponentLauncher.invoke(ComponentLauncher.java:108)
at com.watch4net.component.loader.util.ComponentLauncher.main(ComponentLauncher.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.watch4net.apg.module.plugin.service.Bootstrap.main(Bootstrap.java:150)
Cause
The following path is incomplete in the common.properties configuration file on the frontend host:
apg.resources.webapps.dir=
The common.properties configuration file can be found in the following location on the frontend host:
/opt/APG/Custom/WebApps-Resources/Default/conf/
The path should read as: apg.resources.webapps.dir=Custom/WebApps-Resources/Default
Resolution
The "apg.resources.webapps.dir=" path in the common.properties configuration file on the ViPR SRM frontend host is not complete and will need to be updated.
On the ViPR SRM frontend host, CD to /opt/APG/Custom/WebApps-Resources/Default/conf/ and edit the line "apg.resources.webapps.dir=" to the following:
apg.resources.webapps.dir=Custom/WebApps-Resources/Default
After the edit, restart all services on the frontend server. Upon restart, Tomcat will find the configuration at correct location and the issue will be resolved.
Additional Information
If the option for "SNMP Device Discovery" is grayed out, refer to article 000059476 as a possible resolution to that specific issue.