Ist es möglich, eine JAX-RS-Anwendung nur mit Anmerkungen einzurichten? (mit Servlet 3.0 und JAX-RS Jersey 1.1.0)
Ich habe es versucht und hatte kein Glück. Einige zu verwenden web.xml
scheint erforderlich.
Konfiguration A (funktioniert, hat aber die Konfiguration 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 {
...
}
Konfiguration B (funktioniert nicht, Ausnahme ausgelöst)
@ApplicationPath("/")
@WebServlet("/*") // <--
public class MyApplication extends Application {
...
}
Letzterer scheint darauf zu bestehen, dass die Anwendung eine Unterklasse von Servlet sein wird (die Ausnahme lässt keine Vermutungen zu)
java.lang.ClassCastException: org.foo.rest.MyApplication cannot be cast to javax.servlet.Servlet
Fragen
Warum hat die Definition von web.xml funktioniert, die Anmerkung jedoch nicht? Was ist der Unterschied?
Gibt es eine Möglichkeit, es zum Laufen zu bringen, z. B. eine JAX-RS-Anwendung ohne web.xml?