|
@@ -19,7 +19,6 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.*;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.net.URL;
|
|
|
-import java.net.URLConnection;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.util.*;
|
|
|
|
|
@@ -104,27 +103,19 @@ public class ProxyHandleServiceImpl implements IProxyHandleService {
|
|
|
@Override
|
|
|
public void proxyGeoServer(TYztZyml serverData, HttpServletRequest request, HttpServletResponse response) {
|
|
|
//请求地址
|
|
|
- String url = geURL(request);
|
|
|
- ////System.out.println("url:" + url);
|
|
|
+ String requestUrl = geURL(request);
|
|
|
|
|
|
- int len = url.indexOf("siweigeoserver");
|
|
|
- String paramsurl = url.substring(len + 14);
|
|
|
- String serverUrl = serverData.getUrl();
|
|
|
+ int requestUrllen = requestUrl.indexOf("siweiserver");
|
|
|
+ String requestUrllenQ = requestUrl.substring(0, requestUrllen + 11);
|
|
|
+ String requestUrllenH = requestUrl.substring(requestUrllen + 11);
|
|
|
|
|
|
- //判断ows
|
|
|
- int owsLen = paramsurl.indexOf("/ows");
|
|
|
- String qqurl = "";
|
|
|
- if (owsLen == 0) {
|
|
|
- int wmslen = serverUrl.indexOf("geoserver");
|
|
|
- qqurl = serverUrl.substring(0, wmslen + 9) + paramsurl;
|
|
|
- } else {
|
|
|
- qqurl = serverUrl + paramsurl;
|
|
|
- }
|
|
|
- ////System.out.println("wz:" + url);
|
|
|
- ////System.out.println("len:" + len);
|
|
|
- ////System.out.println("paramsurl:" + paramsurl);
|
|
|
- ////System.out.println("serverUrl:" + serverUrl);
|
|
|
- ////System.out.println("qqurl:" + qqurl);
|
|
|
+ //服务真实地址
|
|
|
+ String dbUrl = serverData.getUrl();
|
|
|
+ int dbUrllen = dbUrl.indexOf("geoserver");
|
|
|
+ String dbUrlQ = dbUrl.substring(0, dbUrllen + 9);
|
|
|
+ String dbUrlH = dbUrl.substring(dbUrllen + 9);
|
|
|
+
|
|
|
+ String qqurl = dbUrlQ + requestUrllenH;
|
|
|
|
|
|
Map params = new HashMap();
|
|
|
Enumeration<String> parameters = request.getParameterNames();
|
|
@@ -132,8 +123,6 @@ public class ProxyHandleServiceImpl implements IProxyHandleService {
|
|
|
String paramName = parameters.nextElement();
|
|
|
String paramValue = request.getParameter(paramName);
|
|
|
// 处理参数
|
|
|
-// ////System.out.println("paramName:"+paramName);
|
|
|
-// ////System.out.println("paramValue:"+paramValue);
|
|
|
params.put(paramName, paramValue);
|
|
|
}
|
|
|
String url_new = qqurl;
|
|
@@ -143,41 +132,45 @@ public class ProxyHandleServiceImpl implements IProxyHandleService {
|
|
|
|
|
|
@Override
|
|
|
public void proxySuperMapServer(TYztZyml serverData, HttpServletRequest request, HttpServletResponse response) {
|
|
|
- //请求地址
|
|
|
- String url = geURL(request);
|
|
|
- System.out.println("url:" + url);
|
|
|
+ //代理请求地址
|
|
|
+ String requestUrl = geURL(request);
|
|
|
+ int requestUrllen = requestUrl.indexOf("siweiserver");
|
|
|
+ String requestUrllenQ = requestUrl.substring(0, requestUrllen + 11);
|
|
|
+ String requestUrllenH = requestUrl.substring(requestUrllen + 11);
|
|
|
|
|
|
- int len = url.indexOf("siweisupermap");
|
|
|
- String siweiUrl = url.substring(0, len + 13);
|
|
|
- String paramsurl = url.substring(len + 13);
|
|
|
- String serverUrl = serverData.getUrl();
|
|
|
- //判断output ,修改查询信息
|
|
|
- int outputLen = paramsurl.indexOf("/output");
|
|
|
+ //服务真实地址
|
|
|
+ String dbUrl = serverData.getUrl();
|
|
|
+ int dbUrllen = dbUrl.indexOf("iserver");
|
|
|
+ String dbUrlQ = dbUrl.substring(0, dbUrllen + 7);
|
|
|
+ String dbUrlH = dbUrl.substring(dbUrllen + 7);
|
|
|
+
|
|
|
+// //判断output ,修改查询信息
|
|
|
+// int outputLen = requestUrllenH.indexOf("/output");
|
|
|
String qqurl = "";
|
|
|
- if (outputLen == 0) {
|
|
|
- int wmslen = serverUrl.indexOf("iserver");
|
|
|
- qqurl = serverUrl.substring(0, wmslen + 7) + paramsurl;
|
|
|
- } else {
|
|
|
- qqurl = serverUrl + paramsurl;
|
|
|
- }
|
|
|
- Map params = new HashMap();
|
|
|
- Enumeration<String> parameters = request.getParameterNames();
|
|
|
- while (parameters.hasMoreElements()) {
|
|
|
- String paramName = parameters.nextElement();
|
|
|
- String paramValue = request.getParameter(paramName);
|
|
|
- params.put(paramName, paramValue);
|
|
|
- }
|
|
|
- String url_new = qqurl;
|
|
|
-// 判断legend.json,替换查询参数
|
|
|
- int owsLen = paramsurl.indexOf("/legend.json");
|
|
|
- if (owsLen == 0) {
|
|
|
- int olen = serverUrl.lastIndexOf("iserver");
|
|
|
- String oldData = serverUrl.substring(0, olen + 7);
|
|
|
- String newData = siweiUrl;
|
|
|
- formaServerJsonReplace(url_new, params, response, oldData, newData);
|
|
|
- } else {
|
|
|
- formaServerResponse(url_new, params, response);
|
|
|
- }
|
|
|
+// if (outputLen == 0) {
|
|
|
+// int wmslen = serverUrl.indexOf("iserver");
|
|
|
+// qqurl = serverUrl.substring(0, wmslen + 7) + requestUrllenH;
|
|
|
+// } else {
|
|
|
+// qqurl = serverUrl + requestUrllenH;
|
|
|
+//// }
|
|
|
+// Map params = new HashMap();
|
|
|
+// Enumeration<String> parameters = request.getParameterNames();
|
|
|
+// while (parameters.hasMoreElements()) {
|
|
|
+// String paramName = parameters.nextElement();
|
|
|
+// String paramValue = request.getParameter(paramName);
|
|
|
+// params.put(paramName, paramValue);
|
|
|
+// }
|
|
|
+// String url_new = qqurl;
|
|
|
+//// 判断legend.json,替换查询参数
|
|
|
+// int owsLen = requestUrllenH.indexOf("/legend.json");
|
|
|
+// if (owsLen == 0) {
|
|
|
+// int olen = serverUrl.lastIndexOf("iserver");
|
|
|
+// String oldData = serverUrl.substring(0, olen + 7);
|
|
|
+// String newData = siweiUrl;
|
|
|
+// formaServerJsonReplace(url_new, params, response, oldData, newData);
|
|
|
+// } else {
|
|
|
+// formaServerResponse(url_new, params, response);
|
|
|
+// }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -248,7 +241,6 @@ public class ProxyHandleServiceImpl implements IProxyHandleService {
|
|
|
private void formaServerResponse(String uri, Map params, HttpServletResponse response) {
|
|
|
try {
|
|
|
uri = uriJoinParam(uri, params);
|
|
|
- System.out.println("uri:" + uri);
|
|
|
URL url = new URL(uri);
|
|
|
HttpURLConnection con = (HttpURLConnection) url.openConnection();
|
|
|
if (con.getResponseCode() == 400) {
|
|
@@ -324,7 +316,6 @@ public class ProxyHandleServiceImpl implements IProxyHandleService {
|
|
|
is.close();
|
|
|
con.disconnect();
|
|
|
result = strBuffer.toString();
|
|
|
-// System.out.println("result:" + result);
|
|
|
response.setHeader("Access-Control-Allow-Origin", "*");
|
|
|
ServletOutputStream outputStream = response.getOutputStream();
|
|
|
String newStringData = result.replaceAll(oldData, newData);
|