When trying to launch the WebApp from the OneClick web page, the Webapp fails to launch with the following error
SPEC-OCC-10251: Could not connect to Web server at https://xxxxxxxxxx.xxxx.xx:xxxx.
Release : 20.2.x / 21.2.x
Component : Spectrum OneClick
- HTTPS enabled
- Common Access Card Integration enabled
$SPECROOT/webtomcat/bin/logs/webswing.log
---------------------------------------------------------------------------------
2021-09-28 14:12:31,923 ERROR [Webswing Process Handler] (SwingProcessImpl.java:322) [oneclickwebapp_anonym_43085bbbe4c3_1632838348247]
javax.net.ssl.SSLException: readHandshakeRecord
at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:394)
at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:708)
at sun.security.ssl.SSLSocketImpl.access$100(SSLSocketImpl.java:72)
at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:961)
at java.io.OutputStream.write(OutputStream.java:75)
at com.aprisma.util.net.http.HttpConnection.write(HttpConnection.java:784)
at com.aprisma.util.net.http.HttpConnection.write(HttpConnection.java:867)
at com.aprisma.util.net.http.HttpMethod.writeRequestLine(HttpMethod.java:1159)
at com.aprisma.util.net.http.HttpMethod.writeRequest(HttpMethod.java:1137)
at com.aprisma.util.net.http.HttpMethod.processRequest(HttpMethod.java:551)
at com.aprisma.util.net.http.HttpMethod.execute(HttpMethod.java:905)
at com.aprisma.util.net.http.HttpMethod.execute(HttpMethod.java:818)
at com.aprisma.spectrum.app.client.jnlp.ClientAppBase.authenticateUser(ClientAppBase.java:1612)
at com.aprisma.spectrum.app.client.jnlp.ClientAppBase.initialize(ClientAppBase.java:814)
at com.aprisma.spectrum.app.client.jnlp.ClientAppBase.<init>(ClientAppBase.java:500)
at com.aprisma.spectrum.app.client.jnlp.ClientAppBase.<init>(ClientAppBase.java:477)
at com.aprisma.spectrum.app.console.client.ConsoleApp.<init>(ConsoleApp.java:242)
at com.aprisma.spectrum.app.console.client.ConsoleApp.mainImpl(ConsoleApp.java:559)
at com.aprisma.spectrum.app.console.client.ConsoleApp$3.run(ConsoleApp.java:503)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Suppressed: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
at sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:81)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:355)
at sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:397)
... 32 more
Caused by: java.net.SocketException: Broken pipe (Write failed)
The webswing.config file vmArgs did not have the keyStore parameters defined (There is a trustStore entry and a separate keyStore).
Modified the webswing.config file adding the keyStore and keyStorePassword entries, restarted webtomcat
$SPECROOT/webtomcat/webswing/webswing.config
"vmArgs" : "-Xmx1024m -Djavaws.cfg.jauthenticator=true -DbrowserIp=${clientIp} -Dsun.awt.noerasebackground=true -Duser.timezone=${clientTimeZone} -Djavax.net.ssl.trustStore=${SPECROOT}/custom/keystore/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStore=${SPECROOT}/custom/keystore/cacerts -Djavax.net.ssl.keyStorePassword=changeit",
Note: If modifying the entry, make sure that the entry ends with the closing double quote followed by a comma ",