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

源文地址: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的主页。

成功完成。

你可能感兴趣的:(OpenLayers)