0

Servlet API 3.0 で導入された新しいアノテーションは、自分で実装したサーブレット/フィルターを構成するのに非常に役立ちます。しかし...依存関係によって提供されるサーブレット/フィルターを構成する方法はありますか?

たとえば、Resteasy (実際には多くのフレームワーク) を使用すると、次のようなものが必要になることが非常に一般的です。

<web-app version="3.0"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

  <listener>
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
  </listener>

  (...)

</web-app 

したがって、そこで注釈を使用することはできません。いくつかの配布の問題により、空の web.xml を使用できるようにしたいので、そのようなマッピングをプログラムで宣言する方法を見つけるとよいでしょう。

4

2 に答える 2

0

あなたはこれを行うことができます - しかし、それは必ずしもあなたがすべきだという意味ではありません:)。

ServletContextListeners を作成する必要がない場合は、ServletContextListener を作成し、ServletContext のプログラム API を使用して、サーブレット、フィルター、HttpSessionListeners などを Web アプリケーションに追加できます。@WebListener で ServletContextListeners にアノテーションを付ければ完了です。

ServletContextListeners を作成する必要がある場合は、ServletContainerInitializer を使用する必要があります。ここでも、ServletContext のプログラム API を使用します。この場合=、ServletContainerInitializer ですべてを行うこともできます。

于 2013-10-14T19:25:07.867 に答える
0

仕様のセクション 8.1「注釈とプラグ可能性」を確認してください。

Web アプリケーションでは、アノテーションを使用するクラスは、それらが WEB-INF/classes ディレクトリにある場合、またはアプリケーション内の WEB-INF/lib にある jar ファイルにパッケージ化されている場合にのみ、アノテーションが処理されます。

そして、についてのものmetadata-complete

于 2013-10-14T14:43:16.950 に答える