OpenLayers WFS 代理Proxy.cgi设置之Tomcat篇

    技术2022-05-19  24

    源文地址:http://zazawind.appspot.com/?p=64001

    转载请注明来源 http://zazawind.3snavi.com

     

    08年底写过一篇关于OpenLayers跨域请求WFS服务IIS下设置代理Proxy.py的文章,可以解决IIS下对Python的代理支持。一直没有在Tomcat下设置过,这次有机会将tomcat下实地设置代理Proxy.cgi的方式整理出来,以飨读者。

    容器环境:Tomcat 6.0.29

    代理应用: mapproxy

    实验环境:OpenLayers写的应用mapproxy部署Tomcat下(如http://localhost:8090/mapproxy/map.html),WFS服务位于远程服务器如http://remoteserver:8080/geoserver/wfs,此环境下必须使用代理。下面讲述mapproxy应用添加proxy.cgi代理支持步骤。

    1.下载Proxy.cgi文件,在allowedHosts数组段内添加远程地址’remoteserver:8080’

    2.     Tomcat支持cgi代理程序

    在mapproxy应用程序的Web.xml添加如下内容:

    <servlet>

           <servlet-name>cgi</servlet-name>

          <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

           <init-param>

             <param-name>debug</param-name>

             <param-value>0</param-value>

           </init-param>       

           <init-param>

             <param-name>cgiPathPrefix</param-name>

             <param-value>WEB-INF/cgi</param-value>

           </init-param>       

           <init-param>     

               <param-name>executable</param-name>

               <param-value>c:/Python27/python.exe</param-value>

           </init-param>

           <init-param>

               <param-name>passShellEnvironment</param-name>

               <param-value>true</param-value>

           </init-param>       

            <load-on-startup>5</load-on-startup>

       </servlet>

     

       <!-- The mapping for the default servlet-->

       <servlet-mapping>

           <servlet-name>default</servlet-name>

           <url-pattern>/</url-pattern>

       </servlet-mapping>

       <servlet-mapping>

           <servlet-name>cgi</servlet-name>

           <url-pattern>/cgi/*</url-pattern>

    </servlet-mapping>

    3.     在Tomcat的Context.xml (位于Tomcat/conf/文件夹下)文件对<Context>节点增加属性

    <Context privileged=”true”>

    4.     Proxy.cgi文件置于WEB-INF/cgi文件夹下。

    5.     运行测试。浏览器上访问:http://localhost:8080/mapproxy/cgi/proxy.cgi,正常情况下反馈的是OpenLayers的主页。

    成功完成。

    示例下载:mapproxy。


    最新回复(0)