मेरे पास स्वचालन परीक्षण मामलों का एक गुच्छा हैअपाचे जर्सी ग्राहक के साथ लागू किया गया। जब मैं Restful webservice के खिलाफ फ़ाइल हटाता हूं तो एक मामले को छोड़कर सब कुछ बहुत अच्छी तरह से काम करता है। त्रुटि कुछ समय के लिए होती है, और यह "t हर बार पुन: पेश किया जा सकता है, लेकिन ऐसा होता है
फ़ाइल को हटाने के लिए मेरे पास जो कोड है वह जर्सी के साथ काफी सरल और सहज है
Client client = Client.create();
WebResource resource = client.resource(uri);
ClientResponse response = resource.delete(ClientResponse.class);
उपरोक्त कोड सर्वर पर एक फ़ाइल को हटा रहे हैंयूआरआई द्वारा निर्दिष्ट और यह एकमात्र मामला है जहां मुझे "सर्वर मिला है" कई बार (20) "त्रुटि को पुनर्निर्देशित किया गया है। यह कुछ समय गुजरता है, लेकिन यह कुछ समय विफल रहता है। मैं जांच शुरू करने के लिए और अधिक सुराग ढूंढ रहा हूं।"
मुझे मिले अपवाद इस प्रकार हैं:
com.sun.jersey.api.client.ClientHandlerException: java.net.ProtocolException: Server redirected too many times (20)
com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
com.sun.jersey.api.client.Client.handle(Client.java:648)
com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
com.sun.jersey.api.client.WebResource.delete(WebResource.java:272)
<more my user exceptions are skipped here...>
Caused by: java.net.ProtocolException: Server redirected too many times (20)
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1446)
java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:240) com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
com.sun.jersey.api.client.Client.handle(Client.java:648)
com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
com.sun.jersey.api.client.WebResource.delete(WebResource.java:272)
आशा है कि कोई कुछ संकेत दे सकता है? धन्यवाद।
उत्तर:
उत्तर № 1 के लिए 1ऐसा लगता है कि सर्वर किसी कारण से बार-बार रीडायरेक्ट भेज रहा है।
कॉल client.setFollowRedirects(false);
अपने जर्सी क्लाइंट उदाहरण पर ग्राहक को रीडायरेक्ट लूप में आने से बचने के लिए।