2016-11-29 3 views
0

Я создал приложение загрузки весны, которое использует данные springgreql для доступа к базе данных. При тестировании это приложение работает нормально. Однако я хочу использовать это приложение в другом проекте, который не использует весну. У меня есть большой проект, содержащий два о четырех приложения java, я использую maven для интеграции всего этого проекта (через модули). Я добавил зависимость в Java Aplication таким образом:Call Spring boot clases в приложении Java

enter image description here

<dependency> 
     <groupId>databases</groupId> 
     <artifactId>databases</artifactId> 
     <version>${version}</version> 
    </dependency> 

Когда я пытаюсь использовать класс, созданный в проекте Spring ботинок, у меня есть проблема, что это использует @Autowired и когда я выполнить проект java, появляется ошибка нулевого указателя, потому что внутренний класс, который вводится, равен нулю.

Это класс, созданный в рамках проекта Java (не используйте чехол пружинный)

public class MainController implements Initializable { 


    private TagServiceBean tagService = new TagServiceBean(); 

    @Override 
    public void initialize(URL location, ResourceBundle resources) { 

     Collection<Tag> tags = tagService.findAll(); 
     for (Tag tag : tags){ 
      selectedTags.getItems().add(tag.getF_tagname()); 
     }  
    } 
} 

В строке «метки Коллекция = TagService.findAll(), у меня есть следующее сообщение об ошибке:

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) 
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) 
at org.tenergia.historicosFX.Main.start(Main.java:15) 
at  com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) 
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) 
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) 
at java.security.AccessController.doPrivileged(Native Method) 
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) 
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) 
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) 
at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.NullPointerException 
at  org.tenergiaEditor.databases.service.spring.TagServiceBean.findAll(TagServiceBean.java:21) 
at  org.tenergia.historicosFX.controller.MainController.initialize(MainController.ja va:134) 
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548) 
... 17 more 
+0

Можете ли вы разместить больше кода? Является ли ваше загрузочное приложение «базами данных»? Чтобы работа '@ Autowired' работала, вам необходимо выполнить компонентное сканирование пакета, чтобы компоненты могли быть созданы. Вы это делаете? –

+0

Я предполагаю, что проблема заключается в настройке Spring Boot. https://spring.io/guides/gs/relational-data-access/ – duffymo

+0

Да «базы данных» - это мое приложение Springboot, и я выполняю проверку компонентов в основном классе баз данных. Проблема в том, что в приложении Java, где я хочу использовать службы, созданные в приложении весенней загрузки, я не могу его использовать. –

ответ

0

Я предполагаю, что в TagServiceBean вы используете @Autowired впрыснуть других зависимостей в поля. Эти поля не будут автоматически заполнены значениями, так как вы не используете Spring в вашем «Проект Java».

Вы можете заполнить все эти поля вручную (что было бы довольно громоздким), или вы используете Spring в своем «Java Project», чтобы Spring приступил к грязной работе.

+0

Я понимаю, но я не могу изменить проект java на проект Spring. Я пытаюсь поставить «autwired» в tagServiceBean, но у меня есть ошибка с нулевым указателем. Я не знаю, можно ли позвонить из проекта java в проект весны. Я полагаю, что да, но я не знаю, как это сделать. –

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