Thanks very much Nagendra. Your suggestion worked after an initial glitch. I am now struggling with a certificate validation error (‘General OpenSslEngine problem’)
Your suggestion of setting the package classloader property to “package” got me past the old error. However, I hit a new ‘loader constraint violation’ problem below.
Could not run 'deliverDataToAzureBlobStorageService'
java.lang.reflect.InvocationTargetException: loader constraint violation: when resolving method "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;"
the class loader (instance of com/wm/app/b2b/server/PackageClassLoader) of the current class, org/slf4j/LoggerFactory,
and the class loader (instance of java/net/URLClassLoader) for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature
Thankfully, I could wing it after coming across this article. It suggested installing slf4j-jdk14-1.7.32.jar
(an unlisted dependency on top of the slf4j-api-1.7.32
JAR dependency Maven had calculated). Adding the JAR resolved a sort of crazy circular dependency in the slf4j package.
But running the service now returns a ‘General OpenSslEngine problem’
Could not run 'deliverDataToAzureBlobStorageService'
reactor.core.Exceptions$ReactiveException: javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem
The error log stack trace indicates code in the io.netty.
package tried to open a connection to https://<instance>.blob.core.windows.net/inbound
but did not trust the Microsoft issued certificate. How to make it work is now again a mystery.
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
at sun.security.validator.Validator.validate(Validator.java:262)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136)
at io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$ExtendedTrustManagerVerifyCallback.verify(ReferenceCountedOpenSslClientContext.java:234)
at io.netty.handler.ssl.ReferenceCountedOpenSslContext$AbstractCertificateVerifier.verify(ReferenceCountedOpenSslContext.java:748)
at io.netty.internal.tcnative.CertificateVerifierTask.runTask(CertificateVerifierTask.java:36)
at io.netty.internal.tcnative.SSLTask.run(SSLTask.java:48)
at io.netty.internal.tcnative.SSLTask.run(SSLTask.java:42)
at io.netty.handler.ssl.ReferenceCountedOpenSslEngine$TaskDecorator.run(ReferenceCountedOpenSslEngine.java:1455)
at io.netty.handler.ssl.SslHandler.runDelegatedTasks(SslHandler.java:1548)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1394)
at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1246)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1286)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446)
The IS has a dummy truststore and these extended settings, so it should trust any certificate.
watt.security.cert.wmChainVerifier.trustByDefault=true
watt.server.ssl.trustStoreAlias=
I tested a connection from pub.client:http on that IS – it connected to the https://<instance>.blob.core.windows.net/inbound
website without a problem.
Another option is delivering to **http**://<instance>.blob.core.windows.net/inbound
(no SSL), but this is not enabled.
Any thoughts on the certificate validation error (‘General OpenSslEngine problem’)?