2016-08-05 5 views
0

私は今Spring + Vaadin JSPの統合に取り組んでいます。私はインターネットストアの管理パネルで作業しています。 私はすでにSpringサーバーを実行してVaadin UIを正常に追加しましたが、サーバーが2つのサーブレット(dispacherServletとvaadinServlet)に分割されているため、vaadin UIの注釈(@Autowiredなど)は機能しません。ほとんどのサーバーページはディスパッチャサーブレットで動作し、管理パネルのみがVaadinで動作します。 JPAリポジトリとサービスをvaadin UIに接続する必要があります。それを修正してサービスをUIに接続するのを手伝ってください。 UIクラス:Spring + Vaadin注釈@Autowired in UI

@Theme("valo") 
@Title("Administration panel") 
@SpringUI 
public class Administration extends UI { 

    @Autowired 
    LoginService service; //null 

    @Override 
    protected void init(VaadinRequest request) { 
     AbsoluteLayout layout = new AbsoluteLayout(); 
     setContent(layout); 
     TabSheet tabs = new TabSheet(); 
     tabs.setSizeFull(); 
     UsersTab usersTab= new UsersTab(); 
     CategoriesTab categoriesTab = new CategoriesTab(); 
     tabs.addComponent(usersTab.getLayout()); 
     tabs.addComponent(categoriesTab.getLayout()); 
     layout.addComponent(tabs); 
    } 
    @WebServlet(urlPatterns = {"/administration","/administration/*","/VAADIN/*"},asyncSupported = true) 
    @VaadinServletConfiguration(ui = Administration.class, productionMode = false) 
    public static class AdministrationVaadinServlet extends VaadinServlet 
    { 
    } 
} 
+0

コードにリンクしないでください。代わりに、ここに意味のあるコードスニペットを入力してください。コードを追加するには[編集]できます。 –

+1

ok、トピックを編集します。 –

+0

[Vaadin Spring Tutorial](https://vaadin.com/wiki/-/wiki/Main/Vaadin+Spring)に従っていましたか?私はあなたが春のブートを使用していないと思うので、セクションを見て "私は - 春のブートなしでVaadinの春を始める"。 –

答えて

0

Vaadin UIクラスは、管理対象Beanを春、あなたはあなたのコードスニペットに延びているデフォルトのVaadinServletを使用することはできませんようにします。

ほとんどの場合、実際にサーブレットを表示する必要はありませんが、Vaadin Springのコンテキストリスナーによって自動的に作成されます。何らかの理由でサーブレットのカスタマイズが必要な場合は、単純なVaadinServletの代わりにSpringVaadinServletクラスを拡張してください。

Spring Bootを使用している場合は、サーブレット宣言を削除してください。ブート以外の設定と同じですが、設定クラスで@EnableVaadinを使用する必要があります。 Springブートを使用していない場合のセットアップの詳細については、Vaadin Spring tutorialを参照してください。

関連する問題