【问题标题】:CodenameOne build fails reporting SSLHandShakeExceptionCodenameOne 构建失败报告 SSLHandShakeException
【发布时间】:2021-03-29 04:42:32
【问题描述】:

我正在关注 CodenameOne Hello World 教程。 我的设置是 Windows 10、Oracle JDK 11 和 Netbeans 12.2。 我已经在 CodenameOne 中注册了一个帐户。我可以在模拟器中运行该应用程序,但是当我将 Android 或 Windows UWP 构建发送到云时,我会收到 SSL 握手异常。

我已重新安装 Netbeans 和 CodenameOne,但问题仍然存在。我在跟踪中注意到这一行:

Sending build to account: null

我可以从 CodenameOne 插件成功登录,但帐户值始终为空。

下面的跟踪日志。

知道可能出了什么问题吗?

谢谢

build-for-windows-device:
Your build size is: 2kb
Sending build request to the server, notice that the build might take a while to complete!
Sending build to account: null
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:128)
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
    at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:279)
    at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
    at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1356)
    at java.base/sun.net.www.protocol.http.HttpURLConnection$8.run(HttpURLConnection.java:1323)
    at java.base/sun.net.www.protocol.http.HttpURLConnection$8.run(HttpURLConnection.java:1321)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:793)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1320)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:241)
    at com.codename1.build.client.BuildProcess.sendS3Build(BuildProcess.java:460)
    at com.codename1.build.client.BuildProcess.sendRequestToServer(BuildProcess.java:491)
    at com.codename1.build.client.CodeNameOneBuildTask.execute(CodeNameOneBuildTask.java:550)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at jdk.internal.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    at org.apache.tools.ant.Task.perform(Task.java:350)
    at org.apache.tools.ant.Target.execute(Target.java:449)
    at org.apache.tools.ant.Target.performTasks(Target.java:470)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:261)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:574)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:123)
C:\Projects\NetBeans\CN1\CodenameOne\build.xml:617: Error in server build process
BUILD FAILED (total time: 4 seconds)

【问题讨论】:

    标签: windows netbeans codenameone java-11


    【解决方案1】:

    我使用 Java11 运行 Netbeans,似乎 CodenameOne 可以使用 Java 8。 我将 netbeans_jdkhome 变量从 netbeans.conf 文件更改为 jdk8,现在可以正常工作了。 问题解决了。

    【讨论】:

    • Codename One 适用于 Java 11。确保您的插件是最新的,并通过 Codename One Settings -> Basic -> Update Project Libs 更新您的项目库。否则可能会发生不好的事情,例如构建不显示等...
    • 谢谢,不幸的是,我尝试了您的提示,但对我不起作用。如果我使用 Java11 启动 netbeans12.2,我总是会收到 SSL 握手异常,将构建发送到云。但是,如果我使用 Java8 云构建启动 netbeans12.2 工作正常。我指的是用于启动 Netbeans 的 JVM 版本,而不是 Netbeans 项目中的那一套(来自 Project.>Properties->Libraries),如果我将它设置为 Java 11,这个版本可以正常工作。
    • 我也是。这很奇怪。您正在使用哪个特定版本的 JDK 11 以及来自哪个供应商?这意味着我们的证书不被 JDK 识别,这没有意义,因为这是现阶段的 Amazon 证书和稍后的 cloudflare 证书。两者都来自知名权威机构。
    • C:\Java>java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0 .1+13,混合模式)
    • IMPLEMENTOR="Oracle Corporation"
    猜你喜欢
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多