2016-03-07 2 views
3

Я пытаюсь создать небольшое приложение Springboot, которое использует класс groovy.sql.Sql для подключения к базе данных Oracle (барабан Oracle уже был схвачен и находится в пути загрузки Spring Spring). Это очень простой пример для доказательства концепции/тестирования.groovy.sql.Sql Springboot cli

import groovy.sql.Sql 

@RestController 
class ThisWillActuallyRun { 

    @RequestMapping("/") 
    String home() { 
    oracleSql = Sql.newInstance(jdbc:oracle:thin:@oracle-db:1521:db-name, 
           "oracle-user", 
           "oracle-pass", 
           "oracle.jdbc.driver.OracleDriver") 

    row = oracleSql.firstRow("select foo from blah") 
    return "ok" 
    } 
} 

Когда приложение побежал с помощью команды: производится

spring run test_for_so.groovy 

следующая ошибка:

startup failed: 
file:test_for_so.groovy: 1: unable to resolve class groovy.sql.Sql @ line 1, column 1. 
    import groovy.sql.Sql 

ответ

2

Что заводной банки вы в том числе в качестве зависимостей? Барабан groovy включает только поддержку базового языка. Измените его на groovy-all, чтобы получить полный пакет языка и библиотеки. Например, в Gradle, используйте:

dependencies { 
    compile "org.codehaus.groovy:groovy-all" 
    ... 
} 

В мавена, это будет выглядеть следующим образом:

<dependencies> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
    </dependency> 
</dependencies> 

Вы также можете просто добавить groovy-sql поверх groovy пакета, если вы не хотите все.

+0

Для этого приложения, я не использую POM файл, код, приведенный выше, и как запустить это все, что есть. Это было небольшое простое приложение. Что касается вашего комментария о groovy jar только включает поддержку базового языка, это правда, когда вы вызываете groovy из командной строки? – user6025432

1

У меня была такая же проблема. Я только нашел решение. Добавьте код ниже.

@Grab('groovy-sql') 

После заводной-SQL можно использовать

import groovy.sql.Sql 
Смежные вопросы