Konfigurieren Jersey mit Feder mit nur Anmerkungen

Ich habe ein Servlet 3.0 web-app, die mithilfe Frühjahr und Jersey. Momentan habe ich es über den SpringServlet konfiguriert als filter in web.xml und die Ressourcen-Klassen annotiert mit beiden @Path und @Component. Hier ist die web.xml snippet:

<filter>
    <filter-name>jersey-serlvet</filter-name>
    <filter-class>
        com.sun.jersey.spi.spring.container.servlet.SpringServlet
    </filter-class>
    <init-param>
        <param-name>
            com.sun.jersey.config.property.packages
        </param-name>
        <param-value>com.foo;com.bar</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>jersey-serlvet</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Diesem setup funktioniert, aber ich wirklich wollen, um dieses zu erhalten set mit Anmerkungen, nur keine web.xml config. Mein Erster Versuch in dieser war das entfernen der oben SpringServlet-Konfiguration und erstellen Sie eine Klasse, die Sie erweitert Application. Hier ist ein snippet, dass:

@ApplicationPath("/*")
public class MyApplication extends PackagesResourceConfig {

    public MyApplication() {
        super("com.foo;com.bar");

        HashMap<String, Object> settings = new HashMap<String, Object>(1);
        settings.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, true);
        this.setPropertiesAndFeatures(settings);
    }
}

Funktioniert, dass die JAX-RS-Ressourcen registriert sind, und ich kann trifft Sie auf Ihre URLs, aber Sie werfen NullPointerExceptions, wenn Sie versuchen, und verwenden Sie Ihre autowired Eigenschaften... das macht Sinn, weil ich vermute, dass die Ressourcen sind nun geladen von Jersey und sind nicht Spring managed beans, daher kein autowiring.

Trotz ein gutes Stück von der Suche rund um, ich finde keine Möglichkeit, das laden der Jersey Ressourcen als Spring-beans mit Annotationen nur. gibt es so einen Weg? ich weiß nicht wirklich wollen, um zu schreiben, ein Haufen code für die Ressourcen manuell Holen den Spring-Kontext und ruft DI, wenn ich helfen kann.

Wenn Anmerkungen-nur nicht zur Arbeit zu gehen, dann kann ich Leben mit der filter config in web.xml wenn ich können Sie eine Application Klasse zu laden, anstatt eine Liste von Paketen zu Scannen. Wenn ich Sie loswerden kann der Paket-Liste gibt, und dann geben Sie nur ein Application Instanz der Klasse, dann werde ich zufrieden sein.

Natürlich wäre es toll, wenn jemand eine definitive Antwort für mich, aber ich würde auch dankbar für jegliche Hinweise oder Tipps, wo ich sonst noch schauen könnten, oder Dinge zu versuchen.

Dank,
Matt

InformationsquelleAutor Doughnuts | 2013-02-06
Schreibe einen Kommentar