openlayers が使用するプロキシをセットアップしたいので、次の手順に従いました。
OpenLayers Web サイトから proxy.cgi ファイルをダウンロードしました: http://trac.osgeo.org/openlayers/browser/trunk/openlayers/examples/proxy.cgi
proxy.cgi ファイルを変更して、自分のドメインを allowedHosts リストに含めます。
allowedHosts = ['localhost:6901']
proxy.cgi ファイルを次のフォルダーにコピーします。
$TOMCAT_PATH$/webapps/yourApp/WEB-INF/cgi/
以下のセクションを追加して、Web アプリのファイル web.xml を変更します。ファイルは次の場所にあります。
$TOMCAT_PATH$/webapps/yourApp/WEB-INF/web.xml
コメント: Web アプリケーション用の web.xml ファイルが存在しない場合は、自分で作成するか、別の Web アプリケーションからコピーして変更します。(作成した!)
コメント:「executable」パラメーターの「param-value」には、Python インストールへのパスが含まれている必要があります。(します!)
<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:\python25\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>
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
以下の要素を追加して、Web アプリのファイル context.xml を変更します。ファイルは次の場所にあります。
$TOMCAT_PATH$/webapps/yourApp/META-INF/context.xml
Tomcat を再起動する
OpenLayers でプロキシを使用するには、コードに次の 1 行を含めるだけです。
OpenLayers.ProxyHost = "/yourWebApp/cgi-bin/proxy.cgi?url=";
しかし、次のように使用しようとすると:
/webappname/cgi-bin/proxy.cgi?url=labs.metacarta.com
次のエラーが表示されます。
Some unexpected error occurred. Error text was: list index out of range
os.environ["REQUEST_METHOD"] に関連していると思いますが、どのように関連しているかはわかりません..