2016-11-29 9 views
0

これは、データベースにアクセスするためにspringデータpostgresqlを使用するスプリング・ブート・アプリケーションを作成しました。このアプリケーションをテストするとうまく動作します。しかし、私は春を使わない他のプロジェクトでこのアプリケーションを使いたいです。 私は2つのJavaアプリケーションを含む大きなプロジェクトを持っています。私はこのプロジェクトを(モジュールを介して)統合するためにmavenを使用しています。JavaアプリケーションでSpringブート・クラスを呼び出す

enter image description here

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

私は、プロジェクトの春ブーツの中に作成したクラスを使用しようとすると、私はこれは@Autowiredとするとき、私が使用している問題を持っている:私はこの方法でJava aplicationで依存関係を追加しましたプロジェクトjavaを実行すると、挿入された内部クラスがnullであるため、NULLポインタエラーが表示されます。

これは、Javaプロジェクト(春ブーツを使用していない)ライン「コレクションタグ= TagService.findAll(で

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()); 
     }  
    } 
} 

)で作成したクラスであり、私は次のエラーがあります。

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'が動作するためには、パッケージのコンポーネントスキャンを実行して、Beanを作成する必要があります。あなたはそれをやっていますか? –

+0

私はこの問題があなたのSpring Boot設定にあると推測しています。 https://spring.io/guides/gs/relational-data-access/ – duffymo

+0

はい「databases」は私のspringbootアプリケーションです。データベースのメインクラスでコンポーネントをスキャンしています。問題は、Javaアプリケーションでは、私は春のブートアプリケーションで作成されたサービスを使用したい、私はそれを使用することはできませんです。 –

答えて

0

私はあなたがフィールドに他の依存関係を注入する@Autowiredを使用しているTagServiceBeanに想定しています。これらのフィールドは自動的にあなたの「Javaプロジェクト」で春を使用していないので、値で満たされていない。

これらのフィールドを手作業で埋めても構いません(これは非常に面倒です)。あるいは、あなたの "Java Project"でSpringを使用して、Springを汚い作業にすることができます。

+0

私は理解していますが、JavaプロジェクトをSpringプロジェクトに変更することはできません。私はtagServiceBeanに "autowired"を入れようとしますが、私は同じnullポインタエラーがあります。 JavaプロジェクトからSpringプロジェクトへの呼び出しが可能かどうかはわかりません。私はそう思っていますが、私はどのように知りません。 –

関連する問題