Конрад правильный. В случае включения непрерывных диапазонов целых чисел (например, где у вас есть случай 0, случай 1, случай 2 .. случай n), компилятор может сделать что-то еще лучше, потому что ему даже не нужно создавать хеш-таблицу; он просто хранит массив указателей на функции и, таким образом, может загружать свою цель перехода в постоянное время.
На Ubuntu 18.04 я должен был использовать OpenJDK 1.7 для обслуживания старого проекта. Я загрузил двоичный пакет. Но когда я выполнил свой сценарий на нем, я получил ту же ошибку.
решение состояло в том, чтобы удалить cacerts
файл загруженного JDK в jre/lib/security
папка и затем создать его как символьную ссылку на системы cacerts
файл в /etc/ssl/certs/java/
:
sudo ln -s /etc/ssl/certs/java/cacerts /path/to/downloaded/java/jre/lib/security/cacerts
У меня была та же ошибка, и проблема не была в конфигурировании JDK, но простого неправильного пути к jks файлу в application.properties файле под 'базой доверенных сертификатов': параметр, перепроверка, если путь корректен.
Я нашел еще одну причину этой ошибки, которая не связана с Ubuntu.
я пытался настроить взаимный TLS в Spring, загружают 2 приложения и столкнулся с этой проблемой после использования базы доверенных сертификатов, которая имела только запись с закрытым ключом и никакую доверяемую запись сертификата.
Это - моя Начальная загрузка Spring конфигурация TLS
server.port=8443
server.ssl.key-alias=oba-tls
server.ssl.key-password=mypw
server.ssl.key-store-password=mypw
server.ssl.key-store=classpath:keys/tls-keystore.pfx
server.ssl.key-store-type=PKCS12
server.ssl.enabled=true
server.ssl.client-auth=need
server.ssl.trust-store=classpath:keys/truststore.pfx
server.ssl.trust-store-password=mypw
server.ssl.trust-store-type=PKCS12
server.ssl.ciphers=ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-SHA384
server.ssl.protocol=TLS
server.ssl.enabled-protocols=TLSv1.2
Для генерации truststore.pfx, я должен был использовать следующие команды, чтобы заставить ее работать.
openssl req -newkey rsa:2048 -nodes -keyout private.key -x509 -out cert.crt
keytool -importcert -alias oba-trust -file cert.crt -keystore truststore.jks
keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.pfx -srcstoretype JKS - deststoretype PKCS12 -deststorepass yourpassword