3

SmartGWT フロント エンドの開発中に Python バックエンドを使用したいと考えています。デバッグを正しく機能させるには、Eclipse で実行されている開発サーバーが必要だと思います。これは、Web サーバーが Eclipse で実行されることを意味します。

私のpython(Django)バックエンドはデータのリクエストを処理する必要があり、クロスドメインの問題にならないようにしたいのですが、クロスドメインでもポートの一致が必要なようです。

これを回避する最も簡単な方法は何ですか? 偽のドメインを使用してホスト ファイルを設定し、2 つのエントリ (1 つはデータ用、もう 1 つは js 用) を作成することを考えていました。ただし、ポートも一致する必要があるため、マシンに 2 つ目の IP を設定する必要があります。 他の誰かがページを表示できるようにしたい場合は、ローカルホストにアクセスできないため、ローカルホストと外部 IP を使用できません。

もっと簡単なセットアップはありますか?データリクエストを別のサーバーにプロキシするEclipse開発サーバーにドロップできる単純なプロキシピースはありますか? 他のアイデア?

4

3 に答える 3

2

この目的のために、gwt セットアップでプロキシ サーブレットを使用しています。

jetty util アーティファクトの tomcat プロキシ サーブレットを使用しています。

<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 の前のクラスパスにあることを確認してください。

于 2011-10-18T21:34:31.197 に答える
1

-noserverDevMode に使用します。http://code.google.com/webtoolkit/doc/latest/DevGuideCompilingAndDebugging.html#How_do_I_use_my_own_server_in_development_mode_instead_of_GWTを参照してください。

于 2011-10-18T22:24:49.453 に答える
0

最も簡単な方法は、開発マシンにバックエンドとフロントエンドの両方がある場合です。
私のプロジェクトでは、フロントエンドで GWT を使用し、バックエンドで cherrypy (python) を使用しています。

私は Eclipse で両方のプロジェクトをセットアップし、開発時に、cherrypy バックエンド用のデバッガーと GWT フロントエンド用のデバッガーを開始しました。したがって、基本的にバックエンドとフロントエンドを同時にデバッグできます。本当にうまくいきます。Python バックエンドと gwt フロントエンド間の通信は RequestBuilder (JSON) を介して行われます。このセットアップの良い点は、バックエンドのデータ通信を GWT なしで直接テストできることです。

したがって、開発 URL は通常次のようなものです: http://localhost:8080/?gwt.codesvr=127.0.0.1:9997

ポート 8080 は、cherrypy バックエンドで使用されます。

于 2011-10-19T10:58:18.280 に答える