Przeglądaj źródła

更新代理接口以及生成服务地址,现完成geoserver的

DESKTOP-2K9OVK9\siwei 5 miesięcy temu
rodzic
commit
121179b511

+ 7 - 18
onemap-modules/onemap-spatial/src/main/java/com/onemap/spatial/controller/ProxyHandleControllect.java

@@ -27,23 +27,7 @@ public class ProxyHandleControllect {
     @Resource
     private IProxyHandleService proxyHandleService;
 
-    @GetMapping("/{token}/siweigeoserver/**")
-    public void geoserverHandle(@PathVariable("token") String token, HttpServletRequest request, HttpServletResponse response) throws IOException {
-        String fwId = proxyHandleService.proxyServerCheck(token, request, response);
-        if (StringUtils.isEmpty(fwId)) {
-            isCheckFull(response);
-            return;
-        }
-        TYztZyml serverUrlData = proxyHandleService.proxyServerData(fwId);
-        if (serverUrlData == null) {
-            isCheckFull(response);
-            return;
-        }
-        proxyHandleService.proxyGeoServer(serverUrlData, request, response);
-    }
-
-    //    @GetMapping("/{token}/siweisupermap/**", "/{token}/siweisupermap/**")
-    @RequestMapping(value = {"/{token}/siweisupermap*", "/{token}/siweisupermap/**"}, method = {RequestMethod.GET})
+    @RequestMapping(value = {"/{token}/siweiserver*", "/{token}/siweiserver/**"}, method = {RequestMethod.GET})
     public void supermapserverHandle(@PathVariable("token") String token, HttpServletRequest request, HttpServletResponse response) throws IOException {
         String fwId = proxyHandleService.proxyServerCheck(token, request, response);
         if (StringUtils.isEmpty(fwId)) {
@@ -55,7 +39,12 @@ public class ProxyHandleControllect {
             isCheckFull(response);
             return;
         }
-        proxyHandleService.proxySuperMapServer(serverUrlData, request, response);
+        String server_type = serverUrlData.getServerType();
+        if (StringUtils.isNotEmpty(server_type) && "geoserver".equals(server_type.toLowerCase())) {
+            proxyHandleService.proxyGeoServer(serverUrlData, request, response);
+        } else {
+            proxyHandleService.proxySuperMapServer(serverUrlData, request, response);
+        }
     }
 
     private void isCheckFull(HttpServletResponse response) throws IOException {

+ 3 - 3
onemap-modules/onemap-spatial/src/main/java/com/onemap/spatial/domain/TZymlApplicationRecordVo.java

@@ -24,7 +24,7 @@ public class TZymlApplicationRecordVo {
     private Date deadline;
     private Integer state;
     @TableField(value = "fw_key")
-    private Integer fwKey;
+    private String fwKey;
 
     public String getId() {
         return id;
@@ -74,11 +74,11 @@ public class TZymlApplicationRecordVo {
         this.state = state;
     }
 
-    public Integer getFwKey() {
+    public String getFwKey() {
         return fwKey;
     }
 
-    public void setFwKey(Integer fwKey) {
+    public void setFwKey(String fwKey) {
         this.fwKey = fwKey;
     }
 }

+ 48 - 57
onemap-modules/onemap-spatial/src/main/java/com/onemap/spatial/service/impl/ProxyHandleServiceImpl.java

@@ -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);