Maven https errors with RAD/Eclipse

回眸只為那壹抹淺笑 提交于 2020-06-18 13:01:46

问题


RAD 9.6.1 (Java 8) on Windows

Maven is the current culprit, but I'm betting this is Eclipse-wide/Java-wide. RAD errors showing this, on the project and pom.xml:

Failed to read artifact descriptor for com.itextpdf:itext-licensekey:jar:2.0.3
org.eclipse.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for com.itextpdf:itext-licensekey:jar:2.0.3
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:302)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:218)
        at org.eclipse.aether.internal.impl.DefaultDependencyCollector.resolveCachedArtifactDescriptor(DefaultDependencyCollector.java:535)
        at org.eclipse.aether.internal.impl.DefaultDependencyCollector.getArtifactDescriptorResult(DefaultDependencyCollector.java:519)
        at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:409)
        at org.eclipse.aether.internal.impl.DefaultDependencyCollector.processDependency(DefaultDependencyCollector.java:363)
        at org.eclipse.aether.internal.impl.DefaultDependencyCollector.process(DefaultDependencyCollector.java:351)
        at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:254)
        at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:316)
        at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:172)
        at org.apache.maven.project.DefaultProjectBuilder.resolveDependencies(DefaultProjectBuilder.java:215)
        at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:188)
        at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:119)
        at org.eclipse.m2e.core.internal.embedder.MavenImpl.readMavenProject(MavenImpl.java:636)
        at org.eclipse.m2e.core.internal.project.registry.DefaultMavenDependencyResolver.resolveProjectDependencies(DefaultMavenDependencyResolver.java:63)
        at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refreshPhase2(ProjectRegistryManager.java:529)
        at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager$3.call(ProjectRegistryManager.java:491)
        at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager$3.call(ProjectRegistryManager.java:1)
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151)
        at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:495)
        at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:350)
        at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:297)
        at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.getProjectFacade(MavenBuilder.java:154)
        at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1.call(MavenBuilder.java:89)
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151)
        at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99)
        at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86)
        at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200)
        at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:735)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:206)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:246)
        at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:301)
        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
        at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:304)
        at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:360)
        at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:383)
        at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
        at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not transfer artifact com.itextpdf:itext-licensekey:pom:2.0.3 from/to iText
(https://repo.itextsupport.com/releases): Received fatal alert: handshake_failure
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:444)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:287)
        ... 41 more
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact com.itextpdf:itext-licensekey:pom:2.0.3 from/to iText (https://repo.itextsupport.com/releases): Received fatal alert: handshake_failure
        at io.takari.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:895)
        at io.takari.aether.connector.AetherRepositoryConnector$2.wrap(AetherRepositoryConnector.java:1)
        at io.takari.aether.connector.AetherRepositoryConnector$GetTask.flush(AetherRepositoryConnector.java:673)
        at io.takari.aether.connector.AetherRepositoryConnector.get(AetherRepositoryConnector.java:310)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:520)
        at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:421)
        ... 44 more

Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
        at com.ibm.jsse2.j.a(j.java:3)
        at com.ibm.jsse2.j.a(j.java:32)
        at com.ibm.jsse2.as.b(as.java:691)
        at com.ibm.jsse2.as.a(as.java:710)
        at com.ibm.jsse2.as.i(as.java:338)
        at com.ibm.jsse2.as.a(as.java:711)
        at com.ibm.jsse2.as.startHandshake(as.java:454)
        at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:242)
        at com.squareup.okhttp.Connection.connect(Connection.java:159)
        at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:175)
        at com.squareup.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:120)
        at com.squareup.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:330)
        at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:319)
        at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:241)
        at com.squareup.okhttp.Call.getResponse(Call.java:271)
        at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:228)
        at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:199)
        at com.squareup.okhttp.Call.execute(Call.java:79)
        at io.takari.aether.okhttp.OkHttpAetherClient.execute(OkHttpAetherClient.java:154)
        at io.takari.aether.okhttp.OkHttpAetherClient.get(OkHttpAetherClient.java:100)
        at io.takari.aether.connector.AetherRepositoryConnector$GetTask.resumableGet(AetherRepositoryConnector.java:600)
        at io.takari.aether.connector.AetherRepositoryConnector$GetTask.run(AetherRepositoryConnector.java:453)
        at io.takari.aether.connector.AetherRepositoryConnector.get(AetherRepositoryConnector.java:304)
        ... 46 more
        pom.xml /Mail   line 1  Maven Dependency Problem 

Or, when I run Maven from inside RAD, this:

[ERROR] Failed to execute goal on project Mail: Could not resolve dependencies for project com.ibm.gs.houston:Mail:adapter:1.0-SNAPSHOT: Failed to collect dependencies at com.itextpdf:itext-licensekey:jar:2.0.3: Failed to read artifact descriptor for com.itextpdf:itext-licensekey:jar:2.0.3: Could not transfer artifact com.itextpdf:itext-licensekey:pom:2.0.3 from/to iText (https://repo.itextsupport.com/releases): No appropriate protocol, may be no appropriate cipher suite specified or protocols are deactivated -> [Help 1]

I suspect it's not just this site, but any site that no longer supports SSLv3. I've seen this in WebSphere too, when it had a setting to "SSL_TLS", which apparently doesn't do TLS 1.1 or 1.2. Finding what I hoped was the right RAD property file to address that setting, didn't seem to make any difference.

From the Eclipse configuration details, I see:

com.ibm.SSL.ConfigURL=file:C:\Program Files\IBM\SDP/runtimes/base_stub/properties/ssl.client.props

But changing settings there hasn't helped.


回答1:


This appears to be an Eclipse bug that isn't fixed until a later version than what RAD currently uses:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=515859




回答2:


An approach that works currently is to update RAD's eclipse.ini to point to a custom java.security file.

Edit the RAD eclipse.ini file to add something like: -Djava.security.properties=/Users/YourUsername/my.java.security

Where my.java.security contains:

# explicitly don't use the WAS-provided SSL factory (from RAD).
# Use -Djava.security.properties=/Users/YourUsername/my.java.security in eclipse.ini
ssl.SocketFactory.provider=
ssl.ServerSocketFactory.provider=



回答3:


The latest update to RAD 9.6 uses Maven M2E 1.8.3, which does not experience the bug. The solution is to update your RAD 9.6 installation through IBM Installation Manager.



来源:https://stackoverflow.com/questions/46208771/maven-https-errors-with-rad-eclipse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!