हम वेब सेवा बनाने के लिए ड्रॉपविज़ार्ड/जर्सी का उपयोग कर रहे हैं। संसाधन में एक पथ है और विधि में एक उप-पथ है। जब प्रतिक्रिया उत्पन्न होती है (201) जिस विधि को हम प्राप्त कर रहे हैं उसका मार्ग हमारे द्वारा प्रदान किए गए स्थान पर प्रीपेड किया जाता है। किसी स्थान के साथ ठीक स्थिति लौटने पर (जिसे मैं जानता हूं), सब ठीक है, और जैसा कि हमने इसे प्रदान किया है, स्थान वापस लौटाया गया है।Javax Response स्थिति पर स्थान शीर्षलेख पथ सेट करते समय विधि पथ तैयार करता है
हम ऐसे स्थान को कैसे वापस कर सकते हैं जो हमारी विधि के स्थान का उप-पथ नहीं है?
नीचे दिए गए उदाहरण में: एक पाने के लिए "http: // localhost/foo/बार" (बनाया स्थिति) के स्थान के साथ प्रतिक्रिया करता है "http: // localhost/foo/बार/wibble" (ध्यान दें /foo/bar)
जबकि "http: // localhost/foo/baz" (ठीक स्थिति) प्राप्त करने के लिए "http: // localhost/wibble" के स्थान के साथ प्रतिक्रिया होती है जो हम चाहते हैं।
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import java.net.URI;
@Path("/foo")
public class FooResource {
@POST
@Path("/bar")
public Response bar() {
URI uriOfCreatedResource = URI.create("/wibble");
return Response.created(uriOfCreatedResource).build();
}
@POST
@Path("/baz")
public Response baz() {
URI uriOfCreatedResource = URI.create("/wibble");
return Response.ok().location(uriOfCreatedResource).build();
}
}
धन्यवाद, मैं कोशिश करूँगा। हमारा वर्तमान वर्कअराउंड ऑब्जेक्ट में यूआरएल के साथ स्टेटस 200 वापस करना है, जो जेएसओएन को क्रमबद्ध हो जाता है। –