2012-04-09 144 views
1

我必須實現一個web2py應用程序,它必須訪問java代碼(它有代碼連接到遠程計算機),但不確定我們是否可以在web2py中執行它。我的PC有Java 1.6,Python2.7,web2py ,安裝了eclipse。我們可以在web2py應用程序代碼中使用java代碼嗎?

用例是:

我曾經在的web2py應用和在點擊該按鈕創建了一個按鈕,它應該實例化Java對象和調用該Java對象,這將進一步連接到遠程機器的特定方法。

疑惑是:

  1. 我們可以部署特定的Java類web2py的服務器,這樣的web2py應用程序可以很容易地訪問它?

  2. 是否有可能從python代碼中導入該類?

  3. 如何從python代碼實例化java對象?

  4. 如何從python代碼調用java方法?

問候, 皮克斯

回答

2

我會考慮尋找到web服務。 如果你可以暴露從Java的URL,這將路由到Java的方法/功能執行邏輯,並返回JSON對象。 在web2py urllib2中,您可以發出請求並將該json解碼爲本機Python字典。 線索是,你將不得不公開所有對象的方法,並將對象作爲json來回傳遞。在大多數編程中不要害怕對象只是具有一些特殊質量的hash_arrays/dictionaries。所以,如果你可以序列化和反序列化對象,並揭露apriopriate網址,你會沒事的。

另外還有jython中的web2py的實現。但是,整個堆棧將在JVM中,我可能會更復雜。

+0

好的,我明白你在說什麼,好像我需要做很多額外的工作才能實現它,所以如果我去執行web服務並且不需要JAVA代碼,那麼如何實現它呢?我再次以不同的方式使用我的用例: 1.我們的web2py應用程序位於一臺機器上,Web客戶機也將運行,並且數據庫也將在那裏。 – piks 2012-04-12 03:15:05

+0

如果我去執行web服務,並且不需要JAVA代碼,那麼如何實現它?我再次以不同的方式使用我的用例: 1.我們的web2py應用程序位於一臺機器上,Web客戶機也將運行,並且數據庫也將在那裏。 2.用戶可以使用來自遠程機器的URL訪問web2py應用程序,並訪問保存在數據庫中的內容並顯示給用戶。 3.服務器可以與安裝了Web服務服務器的遠程系統進行通信,並從那裏獲取所需的數據並保存到數據庫中。 因爲我是新的蜜蜂在網絡服務,所以請你給我提供一些基本的想法如何實現它。 – piks 2012-04-12 03:27:14

+0

本書中有一章主要解釋如何從web2py內部暴露web服務。我對java並不熟悉,但我敢打賭,有些微框架只是將某些函數作爲URL地址公開,並提供基本的post&get。 你需要做的是讓這些函數返回jsons,然後你可以通過urllib發出請求。我會回答自己,如果它值得的話...如果它對於一些簡單的類我敢打賭你會重寫它比與Java堆棧鬥爭更快。 – 2012-04-14 17:59:40

0

如果所有的java都在連接到遠程機器,那麼我強烈建議你用python重新實現它。

如果它正在做一些實質性的事情,那就考慮在它的前面放置一個web界面(我喜歡spark這個微框架),並且你可以使用requests模塊(通過pip獲取它)與它交談。

相關問題