खोज…


क्रॉस उत्पत्ति अनुरोधों के लिए जावा जर्सी कॉर्स फ़िल्टर

@Provider
public class CORSResponseFilter implements ContainerResponseFilter {

    public void filter(
        ContainerRequestContext requestContext,
        ContainerResponseContext responseContext
    ) throws IOException {
        MultivaluedMap<String, Object> headers = responseContext.getHeaders();
        headers.add("Access-Control-Allow-Origin", "*"); //Allow Access from everywhere   
        headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");            
        headers.add("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
    }
}

ध्यान दें कि Access-Control-Allow-Origin केवल विकल्प प्रतिक्रियाओं पर उपयोगी है।

जावा जर्सी विन्यास

यह उदाहरण दिखाता है कि जर्सी को कैसे कॉन्फ़िगर किया जाए ताकि आप इसे अपने RESTful API के JAX-RS कार्यान्वयन ढांचे के रूप में उपयोग करना शुरू कर सकें।

यह मानते हुए कि आपने अपाचे मावेन को पहले ही स्थापित कर लिया है, जर्सी को स्थापित करने के लिए इन चरणों का पालन करें:

  1. टर्मिनल (विंडोज़) में मावेन वेब प्रोजेक्ट संरचना बनाएं, निम्न कमांड निष्पादित करें

mvan archetype: जेनरेट -DgroupId = com.stackoverflow.rest -DartifactId = जर्सी-डेमो -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

नोट: ग्रहण का समर्थन करने के लिए, मावेन कमांड का उपयोग करें : mvan ग्रहण: ग्रहण -वृत्पर्व = २.०

  1. उस फ़ोल्डर पर जाएं जहां आपने अपना पावन प्रोजेक्ट बनाया है, अपने pom.xml में, आवश्यक निर्भरताएं जोड़ें
<dependencies>
    <!-- Jersey 2.22.2 -->
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>${jersey.version}</version>
    </dependency>
    <!-- JSON/POJO support -->
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>${jersey.version}</version>
    </dependency>
</dependencies>

<properties>
    <jersey.version>2.22.2</jersey.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
  1. Web.xml में, निम्न कोड जोड़ें
<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <!-- Service or resources to be placed in the following package --> 
        <param-value>com.stackoverflow.service</param-value>
    </init-param>
   
    <!-- Application configuration, used for registering resources like filters  -->
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.stackoverflow.config.ApplicationConfig</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>

 <!-- Url mapping, usage-http://domainname:port/appname/api/ -->
 <servlet-mapping>
     <servlet-name>jersey-serlvet</servlet-name>
     <url-pattern>/api/*</url-pattern>
 </servlet-mapping>
  1. ApplicationConfig वर्ग
public class ApplicationConfig extends ResourceConfig {
    public ApplicationConfig() {
        register(OtherStuffIfNeeded.class);
    }
}

यह भी ध्यान दिया जाना चाहिए कि यदि आप बिना web.xml के साथ जाना चाहते हैं, तो आप बस इससे छुटकारा पा सकते हैं, और ApplicationConfig वर्ग के शीर्ष पर @ApplicationPath("/api") जोड़ @ApplicationPath("/api")

@ApplicationPath("/api")
public class ApplicationConfig extends ResourceConfig {
    public ApplicationConfig() {
        // this call has the same effect as
        // jersey.config.server.provider.packages
        // in the web.xml: it scans that packages for resources and providers. 
        packages("com.stackoverflow.service");
    }
}
  1. अपनी मावेन परियोजना बनाएं और तैनात करें।
  2. जर्सी के जार का उपयोग करने के लिए अब आप अपने जावा रेस्टफुल वेब्स सर्विस (JAX-RS) कक्षाएं लगा सकते हैं।


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow