2014-04-28 18 views
5

मैं this मार्गदर्शिका के बाद स्प्रिंग सुविधाओं के साथ एक आरईएसटी सेवा का उपभोग करने की कोशिश कर रहा हूं लेकिन मुझे कनेक्शन में समस्या है। मैं विधि के साथ बाकी सेवास्प्रिंग रेस्ट टेम्पलेट कनेक्शन रीसेट

http://date.jsontest.com/

मैं लिखा है कोड के इस टुकड़े सेवा

package pack; 
import static org.junit.Assert.assertTrue; 

import java.util.HashMap; 
import java.util.Map; 

import javax.annotation.Generated; 

import org.junit.Test; 
import org.springframework.web.client.RestTemplate; 

import com.fasterxml.jackson.annotation.JsonAnyGetter; 
import com.fasterxml.jackson.annotation.JsonAnySetter; 
import com.fasterxml.jackson.annotation.JsonInclude; 
import com.fasterxml.jackson.annotation.JsonProperty; 
import com.fasterxml.jackson.annotation.JsonPropertyOrder; 


public class RestUtilityTest { 

    @JsonInclude(JsonInclude.Include.NON_NULL) 
    @JsonPropertyOrder({ 
     "time", 
     "milliseconds_since_epoch", 
     "date" 
    }) 
    public class DateTime { 

     @JsonProperty("time") 
     private String time; 
     @JsonProperty("milliseconds_since_epoch") 
     private Integer milliseconds_since_epoch; 
     @JsonProperty("date") 
     private String date; 
     private Map<String, Object> additionalProperties = new HashMap<String, Object>(); 

     @JsonProperty("time") 
     public String getTime() { 
      return time; 
     } 

     @JsonProperty("time") 
     public void setTime(String time) { 
      this.time = time; 
     } 

     @JsonProperty("milliseconds_since_epoch") 
     public Integer getMilliseconds_since_epoch() { 
      return milliseconds_since_epoch; 
     } 

     @JsonProperty("milliseconds_since_epoch") 
     public void setMilliseconds_since_epoch(Integer milliseconds_since_epoch) { 
      this.milliseconds_since_epoch = milliseconds_since_epoch; 
     } 

     @JsonProperty("date") 
     public String getDate() { 
      return date; 
     } 

     @JsonProperty("date") 
     public void setDate(String date) { 
      this.date = date; 
     } 

     @JsonAnyGetter 
     public Map<String, Object> getAdditionalProperties() { 
      return this.additionalProperties; 
     } 

     @JsonAnySetter 
     public void setAdditionalProperty(String name, Object value) { 
      this.additionalProperties.put(name, value); 
     } 

    } 

    @Test 
    public void getTest() 
    { 

     RestTemplate restTemplate = new RestTemplate(); 
     DateTime datetime = restTemplate.getForObject("http://date.jsontest.com", DateTime.class); 

     assertTrue(datetime != null); 

    } 

} 

आवेदन निम्न अपवाद ढेर फेंकता उपभोग करने के लिए उपयोग करना चाहते

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://date.jsontest.com": Connection reset; nested exception is java.net.SocketException: Connection reset 
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:524) 
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:472) 
    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:237) 
    at pack.RestUtilityTest.getTest(RestUtilityTest.java:95) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) 
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) 
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) 
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) 
    at org.junit.runners.ParentRunner.run(ParentRunner.java:309) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) 
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at java.net.HttpURLConnection.getResponseCode(Unknown Source) 
    at org.springframework.http.client.SimpleClientHttpResponse.getRawStatusCode(SimpleClientHttpResponse.java:47) 
    at org.springframework.http.client.AbstractClientHttpResponse.getStatusCode(AbstractClientHttpResponse.java:32) 
    at org.springframework.web.client.DefaultResponseErrorHandler.getHttpStatusCode(DefaultResponseErrorHandler.java:55) 
    at org.springframework.web.client.DefaultResponseErrorHandler.hasError(DefaultResponseErrorHandler.java:49) 
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:510) 
    ... 26 more 

मैंने दो अलग-अलग नेटवर्क कनेक्शन के साथ आरईएसटी कॉल की कोशिश की ताकि नेटवर्क कनेक्शन समस्या न हो; इसके अलावा यदि मैं किसी ब्राउज़र से सेवा पर जाता हूं तो मैं प्रतिक्रिया को सही तरीके से प्राप्त कर सकता हूं।

समस्या क्या हो सकती है?

अग्रिम में धन्यवाद

+0

क्या आपने जैक्सन पुस्तकालयों को जोड़ा है, डेटा को निकालने का प्रयास करते समय यह एक समस्या प्रतीत होती है, क्योंकि यूआरएल ठीक काम कर रहा है – Koitoer

+0

हाय @ कोइटोर, आपके उत्तर के लिए धन्यवाद। मैंने जैकसन-कोर, जैक्सन-एनोटेशन और जैक्सन-डाटाबेस (वर्म 2.2.3) निर्भरताओं को मेरे pom.xml में जोड़ा है। – gvdm

+0

और यह समस्या हल करता है? या – Koitoer

उत्तर

4

हल हो गया। समस्या नेटवर्क कनेक्शन से जुड़ी है। मैं जिस नेटवर्क से संबंधित हूं वह फ़ायरवॉल और प्रॉक्सी है। अब मैं समझने की कोशिश कर रहा हूं कि फ़ायरवॉल नेटवर्क के साथ चीजों को कैसे किया जाए (यह मेरी कंपनी है)।

+0

बनी रहती है मुझे एक ही त्रुटि मिल रही है। सर्वर पर "ClientAbortException", लेकिन क्लाइंट पर "सॉकेट अपवाद"। क्या आप मुझे यह बताने में सक्षम होंगे कि आपको इस त्रुटि को हटाने के लिए फ़ायरवॉल में क्या बदलना है? – Pytry

+0

हाय @ प्यट्री। मैं एक ही कंपनी में नहीं हूं और अब अन्य प्रौद्योगिकियों के साथ काम करता हूं इसलिए मैं इस समस्या को पुन: पेश करने के लिए इस समय सक्षम नहीं हूं और आपको बताता हूं कि समाधान क्या है:/लेकिन सामान्य रूप से यदि आपका नेटवर्क प्रॉक्सी है तो आपको कंपनी को कॉन्फ़िगर करना होगा प्रॉक्सी सर्वर के माध्यम से अनुरोध करने के लिए अपने आरईएसटी क्लाइंट में प्रॉक्सी – gvdm

संबंधित मुद्दे