Problems Resteasy 3.09 CorsFilter

Próbowałem użyć nowego CorsFilter, który jest dostępny w Resteasy 3.0.9. Znalazłem przykład na dole tej strony: Ajax request with JAX-RS/RESTEasy implementing CORS

Jeśli zdefiniuję ten filtr w metodzie getSingletons() (z podklasy Application), to Moje zasoby nie będą już skanowane. Oznacza to, że nie zostaną znalezione żadne zasoby i wystąpi następujący błąd:

javax.ws.rs.NotFoundException: Could not find resource for full path Error Occures

Na następnej stronie znalazłem opis: javax. ws. RS. NotFoundException: nie można znaleźć źródła pełnego błędu ścieżki

ale zasadniczo to, co robi ta opcja wdrażania, to skanowanie w poszukiwaniu adnotacji @Path, @ Provider itp. Powodem jest to, że JAX-RS najpierw będzie szukał klas i obiektów odpowiednio w nadpisanych getClasses() i getSingletons (). If then return empty sets, this tell JAX-RS to do scanning (per the spec).

Więc JAX-RS nie robi skanowanie jeśli nadpiszę metodę getSingletons()? Czy istnieje inny sposób, aby skonfigurować to CorsFilter i włączyć skanowanie zasobów'?

Author: Community, 2015-04-01

1 answers

" czy istnieje inny sposób, aby skonfigurować ten filtr i włączyć skanowanie zasobów?"

Jednym ze sposobów na utrzymanie skanowania jest tylko zaimplementowanie javax.ws.rs.core.Feature

import javax.ws.rs.core.Feature;
import javax.ws.rs.core.FeatureContext;
import javax.ws.rs.ext.Provider;
import org.jboss.resteasy.plugins.interceptors.CorsFilter;

@Provider
public class CorsFeature implements Feature {

    @Override
    public boolean configure(FeatureContext context) {
        CorsFilter corsFilter = new CorsFilter();
        corsFilter.getAllowedOrigins().add("*");
        context.register(corsFilter);
        return true;
    }  
}

Ta funkcja zostanie zeskanowana tak jak wszystkie inne @Providers I @Path s.

Test tylko

@ApplicationPath("/api")
public class RestApplication extends Application {
}

C:\>curl -i http://localhost:8080/api/simple -H "Origin:stackoverflow.com" HTTP/1.1 200 OK Date: Wed, 01 Apr 2015 12:07:22 GMT Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: stackoverflow.com Content-Type: application/octet-stream Content-Length: 15 Server: Jetty(9.2.4.v20141103)

Hello Response!

 30
Author: Paul Samsotha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 03:48:38