Maven с JDK 11 сбой при загрузке неправильной зависимости с расширением (10) не должен быть представлен в server_hello "
Запуск теста в моем проекте с JDK11. Я получаю сбои в этой строке при вызове Maven Aether:
Это происходит при загрузке неправильной зависимости:
Викисклад math3: Обще-math3
Моя гипотеза заключается в том, что я столкнулся с ошибкой JDK11:
- https://stackoverflow.com/info/52016415/jdk-11-ssl-error-on-valid-certificate-working-in-previous-versions
Если это проблема, как это можно обойти?
Stacktrace частично усекается из-за ограничения stackoverflow:
[INFO] [ERROR] Failed to execute goal com.lazerycode.jmeter:jmeter-maven-plugin:DEV-SNAPSHOT:configure (configure) on project test-plugins: Failed to collect dependencies at org.apache.jmeter:ApacheJMeter_components:jar:2.13 -> org.apache.jmeter:jorphan:jar:2.13 -> commons-math3:commons-math3:jar:3.4.1: Failed to read artifact descriptor for commons-math3:commons-math3:jar:3.4.1: Could not transfer artifact commons-math3:commons-math3:pom:3.4.1 from/to JBoss (https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/): extension (10) should not be presented in server_hello -> [Help 1]
[INFO] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.lazerycode.jmeter:jmeter-maven-plugin:DEV-SNAPSHOT:configure (configure) on project test-plugins: Failed to collect dependencies at org.apache.jmeter:ApacheJMeter_components:jar:2.13 -> org.apache.jmeter:jorphan:jar:2.13 -> commons-math3:commons-math3:jar:3.4.1
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
[INFO] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
[INFO] at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
[INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
[INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
[INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
[INFO] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke (Method.java:566)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[INFO] ...
[INFO] Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact commons-math3:commons-math3:pom:3.4.1 from/to JBoss (https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/): extension (10) should not be presented in server_hello
[INFO] at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed (ArtifactTransportListener.java:52)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:365)
[INFO] at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:583)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:259)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:498)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:399)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:224)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:201)
[INFO] at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:261)
[INFO] at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:192)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor (DefaultDependencyCollector.java:539)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult (DefaultDependencyCollector.java:522)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:411)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process (DefaultDependencyCollector.java:353)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:507)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:460)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process (DefaultDependencyCollector.java:353)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:256)
[INFO] at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:282)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:643)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:674)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:674)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.resolveTestDependenciesAndCopyWithTransitivity (ConfigureJMeterMojo.java:577)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyExplicitLibraries (ConfigureJMeterMojo.java:532)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyExplicitLibraries (ConfigureJMeterMojo.java:515)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.doExecute (ConfigureJMeterMojo.java:327)
[INFO] at com.lazerycode.jmeter.mojo.AbstractJMeterMojo.execute (AbstractJMeterMojo.java:233)
[INFO] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
[INFO] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
[INFO] at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
[INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
[INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
[INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
[INFO] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke (Method.java:566)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[INFO] Caused by: org.apache.maven.wagon.TransferFailedException: extension (10) should not be presented in server_hello
[INFO] at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:1068)
[INFO] at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:962)
[INFO] at org.apache.maven.wagon.StreamWagon.getInputStream (StreamWagon.java:126)
[INFO] at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:88)
[INFO] at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
[INFO] at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
[INFO] at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
[INFO] at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:453)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:360)
[INFO] at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:583)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:259)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:498)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:399)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:224)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:201)
[INFO] at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:261)
[INFO] at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:192)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor (DefaultDependencyCollector.java:539)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult (DefaultDependencyCollector.java:522)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:411)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process (DefaultDependencyCollector.java:353)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:507)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:460)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process (DefaultDependencyCollector.java:353)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:256)
[INFO] at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:282)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:643)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:674)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:674)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.resolveTestDependenciesAndCopyWithTransitivity (ConfigureJMeterMojo.java:577)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyExplicitLibraries (ConfigureJMeterMojo.java:532)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyExplicitLibraries (ConfigureJMeterMojo.java:515)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.doExecute (ConfigureJMeterMojo.java:327)
[INFO] at com.lazerycode.jmeter.mojo.AbstractJMeterMojo.execute (AbstractJMeterMojo.java:233)
[INFO] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
[INFO] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
[INFO] at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
[INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
[INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
[INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
[INFO] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke (Method.java:566)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[INFO] Caused by: javax.net.ssl.SSLHandshakeException: extension (10) should not be presented in server_hello
[INFO] at sun.security.ssl.Alert.createSSLException (Alert.java:128)
[INFO] at sun.security.ssl.Alert.createSSLException (Alert.java:117)
[INFO] at sun.security.ssl.TransportContext.fatal (TransportContext.java:308)
[INFO] at sun.security.ssl.TransportContext.fatal (TransportContext.java:264)
[INFO] at sun.security.ssl.TransportContext.fatal (TransportContext.java:255)
[INFO] at sun.security.ssl.SSLExtensions.<init> (SSLExtensions.java:71)
[INFO] at sun.security.ssl.ServerHello$ServerHelloMessage.<init> (ServerHello.java:173)
[INFO] at sun.security.ssl.ServerHello$ServerHelloConsumer.consume (ServerHello.java:864)
[INFO] at sun.security.ssl.SSLHandshake.consume (SSLHandshake.java:392)
[INFO] at sun.security.ssl.HandshakeContext.dispatch (HandshakeContext.java:444)
[INFO] at sun.security.ssl.HandshakeContext.dispatch (HandshakeContext.java:421)
[INFO] at sun.security.ssl.TransportContext.dispatch (TransportContext.java:178)
[INFO] at sun.security.ssl.SSLTransport.decode (SSLTransport.java:164)
[INFO] at sun.security.ssl.SSLSocketImpl.decode (SSLSocketImpl.java:1152)
[INFO] at sun.security.ssl.SSLSocketImpl.readHandshakeRecord (SSLSocketImpl.java:1063)
[INFO] at sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:402)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket (SSLConnectionSocketFactory.java:394)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory.connectSocket (SSLConnectionSocketFactory.java:353)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.conn.DefaultHttpClientConnectionOperator.connect (DefaultHttpClientConnectionOperator.java:141)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.connect (PoolingHttpClientConnectionManager.java:353)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.establishRoute (MainClientExec.java:380)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute (MainClientExec.java:236)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExec.execute (ProtocolExec.java:184)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute (RetryExec.java:88)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute (RedirectExec.java:110)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:184)
[INFO] at org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:82)
[INFO] at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.execute (AbstractHttpClientWagon.java:834)
[INFO] at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:985)
[INFO] at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:962)
[INFO] at org.apache.maven.wagon.StreamWagon.getInputStream (StreamWagon.java:126)
[INFO] at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:88)
[INFO] at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
[INFO] at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
[INFO] at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
[INFO] at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:453)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:360)
[INFO] at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute (BasicRepositoryConnector.java:583)
[INFO] at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get (BasicRepositoryConnector.java:259)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:498)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:399)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:224)
[INFO] at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:201)
[INFO] at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:261)
[INFO] at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:192)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor (DefaultDependencyCollector.java:539)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult (DefaultDependencyCollector.java:522)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:411)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process (DefaultDependencyCollector.java:353)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:507)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:460)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:365)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process (DefaultDependencyCollector.java:353)
[INFO] at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:256)
[INFO] at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:282)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:643)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:674)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyTransitiveRuntimeDependenciesToLibDirectory (ConfigureJMeterMojo.java:674)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.resolveTestDependenciesAndCopyWithTransitivity (ConfigureJMeterMojo.java:577)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyExplicitLibraries (ConfigureJMeterMojo.java:532)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.copyExplicitLibraries (ConfigureJMeterMojo.java:515)
[INFO] at com.lazerycode.jmeter.mojo.ConfigureJMeterMojo.doExecute (ConfigureJMeterMojo.java:327)
[INFO] at com.lazerycode.jmeter.mojo.AbstractJMeterMojo.execute (AbstractJMeterMojo.java:233)
[INFO] at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:134)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
[INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
[INFO] at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
[INFO] at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
[INFO] at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
[INFO] at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
[INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
[INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
[INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
[INFO] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
[INFO] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
[INFO] at java.lang.reflect.Method.invoke (Method.java:566)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
[INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Ответы
Ответ 1
Дополнительное введение
Быстрое информативное введение проблемы было предоставлено @cocorossello в его ответе, я добавлю, что все было начато из списка рассылки Java здесь >>.
Это сообщение также включает в себя быстрый образец для воспроизведения "вопроса":
import java.net.URL;
import java.io.InputStream;
public class Fetch {
public static void main(final String[] args) throws Exception {
final URL targetURL = new URL("https://repository.jboss.org/nexus/content/groups/public/javax/media/jai-core/1.1.3/jai-core-1.1.3.pom");
try (final InputStream is = targetURL.openConnection().getInputStream()) {
is.read();
}
System.out.println("Done");
}
}
Клиентское решение:
Проблема связана с модулем/библиотекой JSSE (Java Secure Socket Extension) - внутренней реализацией Java для безопасных соединений SSL/TLS.
WORKAROUND: Поэтому, чтобы решить эту проблему, нам нужно использовать различные реализации SSL/TLS, например, Bouncy Castle
Я создал небольшой проект в GitHub как доказательство концепции: jdk11-server_hello-workaround, основным классом является FetchWorkaround.java
, который выглядит так:
import org.bouncycastle.crypto.tls.*;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.security.SecureRandom;
public class FetchWorkaround {
private static final String HOST = "repository.jboss.org";
private static final int PORT = 443;
private static final String RESOURCE = "/nexus/content/groups/public/javax/media/jai-core/1.1.3/jai-core-1.1.3.pom";
public static void main(String[] args) throws Exception {
TlsClientProtocol protocol = getTlsClientProtocol();
sendRequest(protocol);
readResponseStream(protocol.getInputStream());
}
private static void readResponseStream(InputStream input) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String line;
try {
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (TlsNoCloseNotifyException exception) {
// do nothing
}
}
private static void sendRequest(TlsClientProtocol protocol) throws IOException {
OutputStream output = protocol.getOutputStream();
output.write(("GET " + RESOURCE + " HTTP/1.1\r\n").getBytes("UTF-8"));
output.write(("Host: " + HOST + "\r\n").getBytes("UTF-8"));
output.write("Connection: close\r\n".getBytes("UTF-8")); // To force socket close immediately.
output.write("\r\n".getBytes("UTF-8")); // HTTP 1.1 requirement: last line must be empty line.
output.flush();
}
private static TlsClientProtocol getTlsClientProtocol() throws IOException {
SecureRandom secureRandom = new SecureRandom();
Socket socket = new Socket(InetAddress.getByName(HOST), PORT);
TlsClientProtocol protocol = new TlsClientProtocol(socket.getInputStream(), socket.getOutputStream(), secureRandom);
DefaultTlsClient client = new DefaultTlsClient() {
public TlsAuthentication getAuthentication() throws IOException {
TlsAuthentication auth = new TlsAuthentication() {
public void notifyServerCertificate(Certificate serverCertificate) throws IOException {
}
public TlsCredentials getClientCredentials(CertificateRequest certificateRequest) throws IOException {
return null;
}
};
return auth;
}
};
protocol.connect(client);
return protocol;
}
}
Он подключается к хосту (одному из Fetch.java
), используя сокет, определяя TlsClientProtocol
и отправляя GET
на необходимый ресурс (тот же pom.xml), вывод выглядит так:
HTTP/1.1 200 OK
Date: Wed, 26 Sep 2018 04:40:54 GMT
Server: Nexus/2.14.6-02
<... other headers ...>
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
<... etc ...>
<groupId>javax.media</groupId>
<artifactId>jai-core</artifactId>
<version>1.1.3</version>
<... etc ...>
Итак, pom.xml был успешно загружен.
Дополнительная информация
-
PoC показывает, что на стороне клиента можно справиться с проблемой server_hello, но это может потребовать много времени (особенно для замены связанной с эфиром логики).
-
В ответе на этот вопрос >> показано, как загружать двоичные данные с помощью сокетов - только вспомогательный метод для обработки заголовков в верхней части ответа.
-
[Требуется доступ к VM] Здесь >> описано, как настроить Bouncy Castle Provider на уровне Java.
-
[Требуется доступ к виртуальной машине] В случае, если можно обновить JDK на стороне VM (сборка /CI) - может быть разумно просто сделать пользовательскую сборку JDK с помощью исправления ошибок PATCH >> - она затрагивает только sun.security.ssl.SSLExtensions
Класс sun.security.ssl.SSLExtensions
- или просто используя структуру связанных источников >>
Ответ 2
OpenSSL 1.1.1 является более строгим со спецификацией, поэтому он не является строго ошибкой, но это то, что повлияет на некоторых пользователей. Он был решен в JDK 12 и предназначен для JDK 11.0.2, поэтому для исправления потребуется некоторое время (backport - https://bugs.openjdk.java.net/browse/JDK-8210005).
В моем случае я сделал обходной путь, используя nginx в качестве "SSL-прокси":
server {
listen 80;
server_name myjbossrepository.mydomain.com;
location / {
proxy_set_header Host repository.jboss.org;
proxy_pass https://repository.jboss.org/;
proxy_ssl_session_reuse off;
proxy_redirect off;
}
}
И тогда вам придется настроить URL-адрес репозитория как https://myjbossrepository.mydomain.com/nexus/content/repositories/thirdparty-releases/
Вы также можете использовать свой собственный сертификат, если хотите:
server {
listen 443 http2 ssl;
server_name myjbossrepository.mydomain.com;
ssl_certificate /etc/conf/letsencryptcertificates/live/myjbossrepository.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/conf/letsencryptcertificates/live/myjbossrepository.mydomain.com/privkey.pem;
location / {
proxy_set_header Host repository.jboss.org;
proxy_pass https://repository.jboss.org/;
proxy_ssl_session_reuse off;
proxy_redirect off;
}
}
Ответ 3
У меня такая же проблема в проекте Activiti при попытке построить с OpenJDK 11 из-за зависимости от Drools, которая в свою очередь пытается вытащить свои собственные транзитивные зависимости из репозитория JBoss, а не из Maven.
Хотя проблема с JBoss Nexus repo https://issues.jboss.org/browse/NEXUS-181 или JDK 11 устранена, я исправил ее на стороне клиента, используя специальный файл settings.xml, который устанавливает jcenter как зеркало репозитория jboss:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- use this mirror with OpenJDK 11 as a workaround for https://bugs.openjdk.java.net/browse/JDK-8210005 and https://issues.jboss.org/browse/NEXUS-181 -->
<mirror>
<id>jboss-public-repository-group-central-mirror</id>
<url>https://jcenter.bintray.com</url>
<mirrorOf>jboss-public-repository-group</mirrorOf>
</mirror>
</mirrors>
</settings>
и вызов моей сборки с помощью: mvn -s settings.xml install