ここで説明されているように、コンストラクターの検証を使用しようとしています:
https://docs.oracle.com/javaee/7/tutorial/bean-validation003.htm
文字列を提供する単純なプロデューサーフィールドがあります...
public class GreetingProducer {
@Produces @Named("greeting")
private String greeting = "Ron";
}
...サーブレットに注入されます:
@WebServlet(urlPatterns = "/test")
@SuppressWarnings("serial")
public class TestServlet extends HttpServlet {
private final String greeting;
@Inject
public TestServlet(@Named("greeting") @Size(min = 4) String greeting) {
this.greeting = greeting;
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().println("Hello " + greeting);
}
}
Wildfly 9 へのデプロイではエラーが発生せず、サーブレットを呼び出しても が出力されますHello Ron
が、デプロイは失敗するはずです。さまざまなフレーバーの制約宣言も試しましたが、何も機能しませんでした。
検証が開始されない理由はありますか?