Production Server Down. User complained about getting 'No Post Office Specified Exception' from WebView. When I checked the MOM was down. I attempted to restart, I see the error: Introscope Enterprise Manager failed to start because:
the trustAnchors parameter must be non-empty
This started after upgrading to APM 10.7 sp3 to HF84
[DEBUG] [main] [Manager.EMWebServer] Validating certificate 'apm'
[DEBUG] [main] [Manager.EMWebServer] Failed to start the Jetty web server: the trustAnchors parameter must be non-empty
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:157)
at com.wily.webserver.WebServerUtilities.validateCertificate(WebServerUtilities.java:827)
at com.wily.webserver.WebServerUtilities.validateCertificateNow(WebServerUtilities.java:702)
at com.wily.webserver.WebServerUtilities.logAndValidateUsedCertificate(WebServerUtilities.java:685)
at com.wily.introscope.server.enterprise.entity.webserver.WebServerEntity.startWebServer(WebServerEntity.java:508)
at com.wily.introscope.server.enterprise.entity.webserver.WebServerEntity.init(WebServerEntity.java:228)
at com.wily.introscope.server.enterprise.entity.webserver.WebServerEntity.<init>(WebServerEntity.java:175)
at com.wily.introscope.server.enterprise.EnterpriseServer.initialize(EnterpriseServer.java:746)
at com.wily.introscope.server.enterprise.EnterpriseServer.doStart(EnterpriseServer.java:387)
at com.wily.util.ALifeCycle.start(ALifeCycle.java:86)
at com.wily.introscope.server.enterprise.EnterpriseServer.<init>(EnterpriseServer.java:330)
at com.wily.introscope.server.enterprise.EnterpriseServer.<init>(EnterpriseServer.java:309)
at com.wily.introscope.server.enterprise.EnterpriseServer.start(EnterpriseServer.java:1614)
at com.wily.introscope.em.internal.Activator.startEM(Activator.java:119)
at com.wily.introscope.em.internal.Application.start(Application.java:27)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
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.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
at org.eclipse.core.launcher.Main.main(Main.java:30)
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.zerog.lax.LAX.launch(Unknown Source)
at com.zerog.lax.LAX.main(Unknown Source)
[INFO] [main] [Manager.EMWebServer] Cleaning up EM/Jetty temporary files.
[ERROR] [main] [Manager.EMWebServer] An error occurred cleaning temporary files!
[ERROR] [main] [Manager.EMWebServer] The EM Webstart service could not be started :the trustAnchors parameter must be non-empty
[DEBUG] [main] [Manager] Shutdown requested.
Release : 10.7.0
em-jetty-config.xml file has been updated by HF84 incorrectly
The previous CA APM documentation instructed users to point both the keystore and truststore to the same ‘keystore’ file. After HF84 is installed, it updates the em-jetty-config.xml which apparently makes the old, documented values incorrect. The truststore path MUST be pointing to the actual cacerts file.
Here is the correct syntax for the DX APM truststore path:
<Set name="TrustStorePath">
<SystemProperty name="introscope" default="."/>/jre/lib/security/cacerts
</Set>
<Set name="TrustStorePassword">changeit</Set>