2017-06-15 5 views
0

として宣言するとき私たちは、より大きなOSGI(karaf 4)アプリケーションでVaadin7を使用していて、VaadinServletは青写真を使用して宣言している:デフォルトVaadinことで設定VaadinServlet ProductonModeビーン

<?xml version="1.0" encoding="UTF-8"?> 
<blueprint default-activation="eager" xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> 
<!-- Vaadin servlet serving static Vaadin resources --> 
<service interface="javax.servlet.Servlet"> 
    <service-properties> 
    <entry key="servlet-name" value="Vaadin Resources" /> 
    <entry key="alias" value="/VAADIN-ui" /> 
    <entry key="contextId" value="app-vaadin" /> 
    </service-properties> 
    <bean class="com.vaadin.server.VaadinServlet" /> 
</service> 

は、デバッグモードで実行され、 ProductionModeをtrueに設定する必要があります。これはコンテキストパラメータとして行うことができますが、アプリケーションはweb.xmlファイルを使用しません。私はそれをbeanのプロパティとして設定しようとしましたが、認識されません。

答えて

0

VaadinServletを拡張してVaadinServletConfiguration注釈を使用することができます。ドキュメントから

:VaadinServletのサブクラスを設定するための

注釈。 この注釈を持つVaadinServletクラスの場合、定義された値は初期化中に となり、DeploymentConfiguration.getApplicationOrSystemProperty(String、String) およびDeploymentConfigurationの特定のメソッドから取得できます。 Init web.xmlまたは@WebServlet注釈で定義されたパラメータは、この注釈で定義されている値よりも優先度が です。

あなたはこのようにそれを使用することができます:

@VaadinServletConfiguration(productionMode = false) 
public class MyAppServlet extends VaadinServlet { 
} 
+0

JAVAコードのいずれもVaadinServletを宣言しないように、そのについて移動する方法がわからないが、それが唯一の青写真のXMLで参照されます。実際、異なるバンドルで宣言された2つのサーブレットがあります。上のものはリソースを扱うためのものであり、別のものはUIProviderクラスを起動するものです。 – JamesP

+0

デフォルトの 'VaadinServlet'実装(' com.vaadin.server.VaadinServlet')を使用しています。それがあなたのJavaコードに含まれていない理由です。既定のものを拡張した独自のサーブレットクラスを作成することができます(上記の例のように空の場合があります)。その後、青写真のxmlに設定します。 [オフィシャルドキュメント](https://vaadin.com/docs/-/part/framework/application/application-environment.html)を読むことで、それをよりよく理解するのに役立ちます。 –

+0

ありがとう、私は多くのドキュメントを読んだが、そのページを見つけられなかった。 – JamesP

関連する問題