<%@page session="false"%> <%@page import="java.net.*,java.io.*" %> <%! String[] serverUrls = { //"<url>[,<token>]" //For ex. (secured server): "http://myserver.mycompany.com/arcgis/rest/services,ayn2C2iPvqjeqWoXwV6rjmr43kyo23mhIPnXz2CEiMA6rVu0xR0St8gKsd0olv8a" //For ex. (non-secured server): "http://sampleserver1.arcgisonline.com/arcgis/rest/services" "http://sampleserver1.arcgisonline.com/arcgis/rest/services", "http://***/arcgis/rest/services, username=***",// username=*** "http://server.arcgisonline.com/ArcGIS/rest/services", "http://***/ArcGIS/rest/services, username=***&password=***", "http://servicesbeta4.esri.com/arcgis/rest/services/", "http://sampleserver2.arcgisonline.com/arcgis/rest/services" }; %> <% try { String reqUrl = request.getQueryString(); boolean allowed = false; String token = null; for(String surl : serverUrls) { String[] stokens = surl.split("\\s*,\\s*"); if(reqUrl.toLowerCase().contains(stokens[0].toLowerCase())) { allowed = true; if(stokens.length >= 2 && stokens[1].length() > 0) token = stokens[1]; break; } } if(!allowed) { response.setStatus(403); return; } if(token != null) { reqUrl = reqUrl + (reqUrl.indexOf("?") > -1 ? "&" : "?") + "token=" + token; } URL url = new URL(reqUrl); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setDoOutput(true); con.setRequestMethod(request.getMethod()); if(request.getContentType() != null) { con.setRequestProperty("Content-Type", request.getContentType()); } con.setRequestProperty("Referer", request.getHeader("Referer")); int clength = request.getContentLength(); if(clength > 0) { con.setDoInput(true); InputStream istream = request.getInputStream(); OutputStream os = con.getOutputStream(); final int length = 5000; byte[] bytes = new byte[length]; int bytesRead = 0; while ((bytesRead = istream.read(bytes, 0, length)) > 0) { os.write(bytes, 0, bytesRead); } } else { con.setRequestMethod("GET"); } out.clear(); out = pageContext.pushBody(); OutputStream ostream = response.getOutputStream(); response.setContentType(con.getContentType()); InputStream in = con.getInputStream(); final int length = 5000; byte[] bytes = new byte[length]; int bytesRead = 0; while ((bytesRead = in.read(bytes, 0, length)) > 0) { ostream.write(bytes, 0, bytesRead); } } catch(Exception e) { response.setStatus(500); } %>
do you can help me please?
I trying use the print widget from Arcgis Flex viewer and get the same message.
Any considerations
The map servicesis visible without problem in the viewer in local and print widget is working ok
When i access to viewer from internet the map service is ok but the print widget not working and i get the message
[RPC Fault faultString="Unable to complete operation." faultCode="400" faultDetail="Error executing tool.: Layer "carto base": Unable to connect to map server athttp://186.47.xx.xx:6080/arcgis/rest/services/carto_base/MapServer.
Failed to execute (Export Web Map).
Failed to execute (Export Web Map Task)."]
The team of network/it say that the access to map services is open
What is the permissions that the map services need enable in firewall or proxy?
Thanks