Подключение к источнику данных с помощью ssl в Karaf, получение java.lang.NoClassDefFoundError: javax / net / ssl / TrustManager

Я использую Servicemix 6.1.3. У меня есть источник данных (.cfg-файл) с использованием ssl:

url=jdbc:mysql://mysqlcluster-test.dot.com:3306/mydb?useSSL=true
user=cs_dev
password=mypwd

Когда я развертываю свой пакет, я получаю следующее сообщение об ошибке:

2018-03-20 14:02:51,054 | ERROR | mix-6.1.3/deploy | JdbcMessageIdRepository          | 251 - org.apache.camel.camel-sql - 2.16.4 | Can't create table for JdbcMessageIdRepository with query 'CREATE TABLE  MYTABLE(name VARCHAR(255), id VARCHAR(100), createdAt TIMESTAMP)' because of: Could not get JDBC Connection; nested exception is java.sql.SQLException: java.lang.NoClassDefFoundError: javax/net/ssl/TrustManager. This may be a permissions problem. Please create this table and try again.
2018-03-20 14:02:51,056 | ERROR | mix-6.1.3/deploy | BlueprintCamelContext            | 156 - org.apache.camel.camel-blueprint - 2.16.4 | Error occurred during starting Camel: CamelContext(SystemIntegration.cu) due Could not get JDBC Connection; nested exception is java.sql.SQLException: java.lang.NoClassDefFoundError: javax/net/ssl/TrustManager
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: java.lang.NoClassDefFoundError: javax/net/ssl/TrustManager
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)[250:org.apache.servicemix.bundles.spring-jdbc:3.2.17.RELEASE_1]
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)[250:org.apache.servicemix.bundles.spring-jdbc:3.2.17.RELEASE_1]
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:428)[250:org.apache.servicemix.bundles.spring-jdbc:3.2.17.RELEASE_1]
    at org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository$1.doInTransaction(JdbcMessageIdRepository.java:70)[251:org.apache.camel.camel-sql:2.16.4]
    at org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository$1.doInTransaction(JdbcMessageIdRepository.java:60)[251:org.apache.camel.camel-sql:2.16.4]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:131)[144:org.apache.servicemix.bundles.spring-tx:3.2.17.RELEASE_1]
    at org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository.doStart(JdbcMessageIdRepository.java:60)[251:org.apache.camel.camel-sql:2.16.4]
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)[151:org.apache.camel.camel-core:2.16.4]
    at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:74)[151:org.apache.camel.camel-core:2.16.4]
    at org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:59)[151:org.apache.camel.camel-core:2.16.4]
    at org.apache.camel.util.ServiceHelper.startServices(ServiceHelper.java:103)[151:org.apache.camel.camel-core:2.16.4]
    ...

Что мне нужно сделать, чтобы использовать источники данных с помощью ssl?


person Jojje    schedule 20.03.2018    source источник


Ответы (1)


Я думаю, вы можете добавить сертификат сервера в KeyStore с вашими доверенными сертификатами.

Есть несколько способов добиться этого, но простое решение - скомпилировать и запустить

эту программу

as

java InstallCert hostname

Пожалуйста, попробуйте и дайте нам знать, работает ли он для вас.

person Mahesh_Loya    schedule 20.03.2018
comment
Спасибо, когда пишешь сервер, ты имеешь ввиду сервер базы данных? - person Jojje; 21.03.2018
comment
да .. Хост сервера БД. Попробуйте и убедитесь, работает ли он для вас. - person Mahesh_Loya; 21.03.2018
comment
Где он расположен? На сервере базы данных или на сервере приложений? - person Jojje; 21.03.2018
comment
Вам необходимо запустить installcert на сервере приложений (хосте), где находится приложение. - person Mahesh_Loya; 21.03.2018