2017-08-16 6 views
2

サーブレットで@Resourceを試して、簡単に設定パラメータを挿入できるかどうかを確認します(これはGlassfish 4.1.1のサーブレット3.0 webappです)。@Resourceを解決できない場合、Glassfish/Wildflyは失敗しませんか?

https://stackoverflow.com/a/45715196/53897私は@Resource String userNameの動作が、web.xmlのenv-entryが存在しない場合に解決できない場合に使用される場合、nullであると言われましたが、仕様に従って間違っているWildFlyの動作は同じでした。

質問:これは既知のバグですか? 「解決できなければ失敗する」という旗を掲げることはできますか?

+2

私はWildFly開発者の一人とこのことについて話し合い、チケットを貰うように頼んだ。 https://issues.jboss.org/browse/WFLY-9235を参照してください。これが実際にバグであると判明した場合は、TCKが捕まえていないものです。そのため、GlassFishもそれを見逃しています。 –

答えて

2

これは簡単なのenvエントリに対して許可されている:

EE.5.4.1.3

....
それは注射対象として、フィールドやメソッドを宣言するのが便利ですが、 defaultを指定します次の例に示すように、コード内の値。

//デプロイヤによって設定される免税の最大数。
@Resource int maxExemptions = 4; //デフォルトは4

デフォルト値を上書きする値が指定されている場合、コンテナはこのリソースの値を注入する必要があります。
.....

+0

Sigh。これが良いアイデアだと思った人は、誤って無視された設定エントリに対処する必要はなく、Java EE 7(84ページ)のままです。デフォルトはこれらのことのための悪い考えです。問題は、デフォルト値を提供するために文言が必要かどうか、あるいはnullの場合もOKですか?もう一度。 –

関連する問題