3

我想在开发 SmartGWT 前端时使用 python 后端。为了使调试正常工作,我认为我需要在 Eclipse 中运行开发服务器,这意味着 Web 服务器将在 Eclipse 中运行。

我的 python (Django) 后端需要为数据请求提供服务,我希望它不是跨域问题,但是跨域似乎也需要端口匹配。

解决此问题的最简单方法是什么?一直在考虑使用虚假域设置我的主机文件,然后有两个条目,一个用于数据,一个用于 js。但是,这需要在机器上设置第二个 IP,因为端口也必须匹配。 如果我希望其他人能够看到我不能使用本地主机和我的外部 IP 的页面,因为他们将无法访问我的本地主机。

有没有更简单的设置?是否有一些简单的代理片段可以放入 eclipse 开发服务器中,将数据请求代理到不同的服务器?其他想法?

4

3 回答 3

2

为此,我在我的 gwt 设置中使用了代理 servlet。

我正在使用来自jetty util artifact的tomcat代理servlet:

<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

用于-noserver开发模式。请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideCompilingAndDebugging.html#How_do_I_use_my_own_server_in_development_mode_instead_of_GWT's

于 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

我的cherrypy后端使用端口8080。

于 2011-10-19T10:58:18.280 回答