在不使用Java后端时使用GWT(在eclipse中)进行开发

时间:2011-10-18 16:28:00

标签: eclipse gwt smartgwt proxies

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

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

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

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

3 个答案:

答案 0 :(得分: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之前的类路径中。

答案 1 :(得分:1)

答案 2 :(得分:0)

最简单的方法是在开发机器上同时拥有后端和前端 对于我的项目,我在前端使用GWT,在后端使用cherrypy(python)。

我在eclipse中设置了两个项目,在开发时我启动了一个用于cherrypy后端的调试器和一个用于GWT前端的调试器。所以我基本上可以同时调试后端和前端。工作真的很好。 python后端和gwt前端之间的通信是通过RequestBuilder(JSON)完成的,这个设置的好处是我可以在没有GWT的情况下直接测试后端的数据通信。

因此开发网址通常类似于:http://localhost:8080/?gwt.codesvr=127.0.0.1:9997

端口8080由我的cherrypy后端使用。