2015-04-01 4 views
14

मैंने नए CorsFilter का उपयोग करने की कोशिश की जो Resteasy 3.0.9 में उपलब्ध है। Ajax request with JAX-RS/RESTEasy implementing CORSसमस्याएं आराम 3.09 कॉर्सफ़िल्टर

अगर मैं विधि getSingletons() (Application उपवर्ग के) में इस फिल्टर को परिभाषित है, तो मेरी संसाधन अब और स्कैन किया नहीं मिलता: मैं इस पृष्ठ के तल पर एक उदाहरण मिल गया। इसका मतलब है कि कोई संसाधन मिल जाएगा और निम्न त्रुटि होती है: javax.ws.rs.NotFoundException: Could not find resource for full path Error Occures

लेकिन मूल रूप से, क्या इस:

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

अगले पेज पर मैं एक विवरण पाया तैनाती विकल्प आवेदन के लिए @Path, @Provider, आदि की टिप्पणियों के लिए स्कैन है। इसका कारण यह है कि जेएक्स-आरएस पहले कक्षाओं और ऑब्जेक्ट को ओवरराइड GetClasses() में प्राप्त करेगा और क्रमशः सिंगलेट() प्राप्त करेगा। यदि फिर खाली सेट लौटाते हैं, तो यह स्कैनिंग (स्पेक प्रति) करने के लिए जेएक्स-आरएस बताता है।

तो JAX-आरएस एक स्कैनिंग अगर मैं ऊपर लिख getSingletons() विधि नहीं करता है? क्या CorsFilter को कॉन्फ़िगर करने और संसाधन स्कैनिंग को सक्षम करने का कोई और तरीका है?

उत्तर

24

"क्या इस कॉर्सफिल्टर को कॉन्फ़िगर करने और संसाधन स्कैनिंग को सक्षम करने का कोई और तरीका है?"

एक तरह से स्कैनिंग रखने के लिए सिर्फ एक 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; 
    } 
} 

यह सुविधा सिर्फ अन्य सभी @Provider और @Path तरह के लिए स्कैन हो जाएगा लागू करने के लिए है।

केवल

@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!

के साथ टेस्ट