Bonjour ,
Je développe une application cliente qui appelle une API web. Lors du déploiement de l'application , elle fonctionne très bien sur ma machine et d'autres machines mais en l’exécutant par hasard sur une nouvelle machine d'un client , il n'est plus capable d'appeler l'API et en consultant les logs j'ai eu cette exception :
Et voici la méthode qui pose le probléme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 SEVERE: org.apache.http.conn.HttpHostConnectException: Connection to http://server.name.org refused at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784) at WebServiceCallManager.callWebServiceGET(Unknown Source) at InfoThreadCaller.call(Unknown Source) at RegularTestExecutor$1.call(Unknown Source) at RegularTestExecutor$1.call(Unknown Source) at javafx.concurrent.Task$TaskCallable.call(Task.java:1259) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.lang.Thread.run(Thread.java:724) Caused by: java.net.ConnectException: Connection timed out: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:579) at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ... 14 more
Il est à noter que l’application marche parfaitement sur d'autres machines.J'ai consulté les forums et j'ai vu des réponses propos des proxys mais j'avais une réponse claire pour résoudre c probléme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145 public Call callWebServiceGET(WebService ws,int pageNumber) throws Exception { // TODO Auto-generated method stub StringBuilder jsonResponse = null; requestURL = this.serverURL.concat(ws.getWeb_service()); /* * Define the call */ Call call = new Call(ws.getWeb_service()); //SET REQUEST TYPE call.setRequestType("GET"); /* * Parameters for a call instance */ long startTime =0; long stopTime=0; String responseTime=""; String dataSize=""; String requestSent=""; String serverResponse=""; String ch=""; try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet getRequest; requestURL=requestURL.concat("?page="+pageNumber); getRequest = new HttpGet(requestURL); System.out.println("Request Sent to Server"); System.out.println(getRequest); //SET REQUEST SENT requestSent=getRequest.toString(); call.setRequestSent(requestSent); this.addGETHeaders(getRequest); startTime = System.currentTimeMillis(); HttpResponse response = httpClient.execute(getRequest); stopTime = System.currentTimeMillis(); //SET RESPONSE TIME responseTime = (stopTime - startTime)+" ms"; call.setResponseTime(responseTime); HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); jsonResponse = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { jsonResponse.append(line + "\n"); } serverResponse=jsonResponse.toString(); JsonParseManager parseManager = new JsonParseManager(); List<JSONObject> responseRecordsList = parseManager.getRecords(jsonResponse); this.setResponseRecordsList(responseRecordsList); int statusCode = response.getStatusLine().getStatusCode(); if(statusCode !=200) { call.setOperationResult("Failure"); call.setRecordsNb("No Records"); } else { ch=String.valueOf(responseRecordsList.size()); call.setOperationResult("Success"); call.setRecordsNb(ch); } ByteArrayOutputStream baos = new ByteArrayOutputStream(1024 * 1024); InputStream inputStream = new ByteArrayInputStream(jsonResponse.toString().getBytes()); try { IOUtils.copy(inputStream, baos); byte[] bytes = baos.toByteArray(); dataSize = String.format("%d bytes", bytes.length); call.setDataSize(dataSize); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (Exception e) { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); String exceptionDetails = sw.toString(); e.getStackTrace(); ErrorLog.logger.log(Level.SEVERE, exceptionDetails); } return call; }
Aide SVP
Merci
Partager