2015-01-07 3 views
-1

У меня странная проблема. Я создал приложение Spring Batch, которое было запущено с Spring Boot. Все мои модульные тесты проходят. Но когда я запускаю программу из командной строки:Нет готового компонента типа org.springframework.jdbc.core.JdbcTemplate с Spring Boot & Batch

java -cp "./batch-1.0-SNAPSHOT-jar-with-dependencies.jar:." com.batch.BatchApplication

Я получил Нет квалификационную боба типа [org.springframework.jdbc.core.JdbcTemplate].

Если я запускаю тот же основной класс из Eclipse, все работает.

public class BatchApplication { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) throws Exception { 
     System.exit(SpringApplication.exit(SpringApplication.run(BatchConfiguration.class, args))); 
    } 
} 

Весенняя загрузка «Автоконфигурация» кажется, не работает с использованием командной строки. Не могли бы вы мне помочь?

ответ

0

Попробуйте java -jar your-long-name.jar (как в документах, и во всех примерах и руководствах). Он использует другую основную структуру и делает зависимости доступными во время выполнения.

+0

Нет, если вы видите мой путь класса, у меня есть "." для ссылки на текущий каталог для загрузки внешних ресурсов. java -jar ... не позволяет расширять путь к классам. – Aure77

+1

Да, но ваш основной класс не делает ничего умного. Если вам нужно добавить каталоги в классpath, посмотрите на один из других основных классов в Spring Boot (например, «PropertiesLauncher» http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#executable- баночка-свойство-пусковая-функция). –

+0

Итак, я не могу использовать Spring Boot со стандартным (uber) java jar? Мне нужно использовать только формат загрузки Spring Boot и Launcher? Как я могу экрнализировать 'application.properties' с помощью' PropertiesLauncher' (аргументы командной строки?)? – Aure77

Смежные вопросы