2016-11-29 13 views
3

Я создаю приложение 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; 
    } 
} 

вы можете указать все, что я мог бы быть отсутствующий?

ответ

1

Я нашел проблему ... Проблема заключалась в том, что зависимость котелок был перечислен дважды в pom.xml в качестве тест-зависимость ...

Этот файл pom.xml был повторно использован из другого проекта и пропустил это при его дезинфекции.