2011-10-18 28 views
3

我想在開發SmartGWT前端時使用python後端。爲了使調試工作正常,我想我需要在eclipse中運行的開發服務器,這意味着Web服務器將在eclipse中運行。在不使用Java後端時使用GWT進行開發(在eclipse中)

我的python(Django)後端需要爲數據請求提供服務,我希望它不是跨域問題,但是跨域也似乎需要端口匹配。

解決此問題的最簡單方法是什麼?一直在考慮使用虛假域來設置我的主機文件,然後有兩個條目,一個用於數據,一個用於js。但是,這需要在機器上設置第二個IP,因爲端口也必須匹配。 如果我希望其他人能夠看到頁面,我不能使用本地主機和我的外部IP,因爲他們將無法到達我的本地主機。

有沒有更簡單的設置? 是否有一些簡單的代理片段可以放入eclipse dev服務器中,用於將數據請求代理到不同的服務器? 其他想法?

回答

2

我在我的gwt設置中使用了一個代理servlet來達到此目的。

我使用從碼頭util的神器了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變量一些weired錯誤,請確保jetty-util.jar位於GWT SDK之前的類路徑中。

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的後端。

+0

我假設你使用pyDev來運行python代碼? – boatcoder

+0

是的,我正在使用PyDev。 –

相關問題