Разработка с GWT (в затмении), когда НЕ используется Java Backend - PullRequest
3 голосов
/ 18 октября 2011

Я хочу использовать Python-сервер при разработке интерфейса SmartGWT.Для того, чтобы отладка работала правильно, я думаю, что мне нужен dev-сервер, работающий в eclipse, что означает, что веб-сервер будет работать в eclipse.

Мой бэкэнд Python (Django) должен обслуживать запросы данных иЯ бы хотел, чтобы это не было междоменной проблемой, однако междоменная проблема также требует совпадения портов.

Какой самый простой способ обойти это?Подумал о настройке моего файла hosts с поддельным доменом, а затем получил две записи: одну для данных, одну для js.Но это требует установки второго IP-адреса на машине, поскольку порты тоже должны совпадать. Если я хочу, чтобы кто-то еще мог видеть страницы, которые я не могу использовать localhost и мой внешний IP-адрес, поскольку они не смогут попасть на мой localhost.

Есть ли какие-тоболее простая настройка?Есть ли какой-нибудь простой прокси-сервер, который я мог бы добавить на сервер eclipse dev, который бы передавал запросы данных на другой сервер?Другие идеи?

Ответы [ 3 ]

2 голосов
/ 19 октября 2011

Я использую прокси сервлет в моей настройке gwt для этой цели.

Я использую сервлет прокси-сервера tomcat от артефакта jetty util:

<dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-util</artifactId>
    <version>6.1.22</version>
    <scope>runtime</scope>
</dependency>

Мой web.xml выглядит так:

<servlet>
    <servlet-name>JettyProxy</servlet-name>
    <servlet-class>org.mortbay.servlet.ProxyServlet$Transparent</servlet-class>
    <init-param>

        <param-name>ProxyTo</param-name>
        <param-value>http://yourserver</param-value>
    </init-param>
    <init-param>

        <param-name>Prefix</param-name>
            <!-- will be removed from request -->
        <param-value>/prefix/</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>JettyProxy</servlet-name>
        <url-pattern>/prefix/*</url-pattern>
    </servlet-mapping>

Если вы получили какую-то причудливую ошибку о некоторой переменной _context, убедитесь, что файл jetty-util.jar находится в вашем пути к классам перед GWT SDK.

1 голос
/ 19 октября 2011
0 голосов
/ 19 октября 2011

Самый простой способ сделать это, если у вас есть и бэкэнд, и внешний интерфейс на вашей машине для разработки.
Для своих проектов я использую GWT на внешнем интерфейсе и cherrypy (python) на внутреннем.

Я настроил оба проекта в Eclipse, и при разработке я запускаю отладчик для вишневого бэкэнда и один для внешнего интерфейса GWT. Таким образом, я могу в основном отлаживать backend и frontend одновременно. Работает действительно хорошо. Связь между Python Backend и GWT Frontend осуществляется через RequestBuilder (JSON), и хорошо в этой настройке, что я могу проверить передачу данных бэкэнда напрямую без GWT.

Таким образом, URL-адрес разработки обычно выглядит примерно так: http://localhost:8080/?gwt.codesvr=127.0.0.1:9997

Порт 8080 используется моей вишневой оболочкой.

...