Я создаю приложение JavaEE с Spring, и я пытаюсь подключить его к DerbyEmbeddedDriver. Это приложение будет использоваться в SAP Hana Cloud Platform суда, поэтому я использую свою версию Tomcat 8.Ошибка встроенного драйвера Derby XBM02 Пожалуйста, убедитесь, что ваш путь к классу включает правильное программное обеспечение Derby.
Tomcat 8 можно найти по адресу: https://tools.hana.ondemand.com/
SAP HCP: https://account.hanatrial.ondemand.com/
Ошибка возникает, когда Я запускаю сервер Tomcat. Это то, что я вижу:
Caused by: ERROR XJ041: Failed to create database 'memory:DemoDB', see the next exception for details. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown Source) ... 113 more Caused by: ERROR XBM02: Startup failed due to missing functionality for org.apache.derby.iapi.types.DataValueFactory. Please ensure your classpath includes the correct Derby software. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.iapi.services.monitor.Monitor.missingImplementation(Unknown Source) at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.startModule(Unknown Source) at org.apache.derby.impl.services.monitor.FileMonitor.startModule(Unknown Source) at org.apache.derby.iapi.services.monitor.Monitor.bootServiceModule(Unknown Source) at org.apache.derby.impl.db.BasicDatabase.boot(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.boot(Unknown Source) at org.apache.derby.impl.services.monitor.TopService.bootModule(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source) at org.apache.derby.impl.services.monitor.BaseMonitor.createPersistentService(Unknown Source) at org.apache.derby.impl.services.monitor.FileMonitor.createPersistentService(Unknown Source) at org.apache.derby.iapi.services.monitor.Monitor.createPersistentService(Unknown Source) ... 110 more
Что касаемо ошибку, я использую Maven, и это мой Derby конфиг зависимости:
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.13.1.1</version>
</dependency>
Так я предполагаю, что специалист должен добавить это к Lib зависимостей Maven , поэтому мне не нужно явно указывать это на пути к классу, верно?
И относительно создания объекта источника данных. Этот сервер Tomcat имеет конфигурационный файл под серверами // config_master/connection_data/connection.properties, который содержит:
#----------------------------------------
# Connection parameters for a local Derby database
# DB and tables are created automatically (if missing)
#----------------------------------------
javax.persistence.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
javax.persistence.jdbc.url=jdbc:derby:memory:DemoDB;create=true
javax.persistence.jdbc.user=demo
javax.persistence.jdbc.password=demo
eclipselink.target-database=Derby
#----------------------------------------
# Connection parameters MaxDB
#----------------------------------------
#javax.persistence.jdbc.driver=com.sap.dbtech.jdbc.DriverSapDB
#javax.persistence.jdbc.url=jdbc:sapdb://<host>/DEMO
#javax.persistence.jdbc.user=demo
#javax.persistence.jdbc.password=demo
#eclipselink.target-database=org.eclipse.persistence.platform.database.MaxDBPlatform
Это потребляется сервером, и он создаст новый источник данных и ввести его в контексте на основе имя определено, поэтому, когда я хочу, чтобы получить его по применению я все это:
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() throws NamingException {
InitialContext ctx = new InitialContext();
DataSource dataSource = (DataSource) ctx.lookup("java:comp/env/memory/DemoDB");
return dataSource;
}
}
вы можете указать все, что я мог бы быть отсутствующий?