среда, 16 марта 2011 г.

Error 2004: Can't create TCP/IP socket (10106)

Подключил Python как CGI в Tomcat'e как написано в документации: удалил комментирование с блоков подключения CGIServlet-а и маппинга сервлета, а также переименовал servlets-cgi.renametojar в servlets-cgi.jar. Перезапустил веб-сервер, теперь все файлы находящиеся в папке cgi обрабатываются через python. Все было бы хорошо, но столкнулся с проблемой - при открытии сокетов вываливалась ошибка:
Error 2004: Can't create TCP/IP socket (10106)

Решается проблема прописыванием недокументированного параметра (passShellEnvironment) в конфигурацию web.xml. В результате должно быть так:
    <servlet>
        <servlet-name>cgi</servlet-name>
        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>clientInputTimeout</param-name>
          <param-value>100</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>debug</param-name>
          <param-value>6</param-value>
        </init-param>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi</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>
 П.С.: Tomcat версии 4, Python версии 2.7.

Комментариев нет:

Отправить комментарий