アノテーションのみを使用してJAX-RSアプリケーションをセットアップすることは可能ですか?(サーブレット3.0およびJAX-RSジャージー1.1.0を使用)
試してみましたが、運がありませんでした。いくつかを使用するweb.xml
必要があるようです。
構成A(機能していますが、web.xml構成があります)
web.xml
...
<servlet>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>org.foo.rest.MyApplication</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
...
Java
@ApplicationPath("/")
public class MyApplication extends Application {
...
}
構成B(機能しない、例外がスローされる)
@ApplicationPath("/")
@WebServlet("/*") // <--
public class MyApplication extends Application {
...
}
後者は、アプリケーションがサーブレットのサブクラスになることを主張しているようです(例外は当て推量を残しません)
java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
質問
web.xml定義が機能したのに、アノテーションが機能しなかったのはなぜですか?違いは何ですか?
それを機能させる方法はありますか?たとえば、web.xmlのないJAX-RSアプリケーションがありますか?