2011-04-01 176 views
0

如果這是一個愚蠢的問題,請原諒我。我對構建Web服務和完成Web應用程序完全陌生。 我想爲基於Java的Web應用程序開發特定的功能。但是,使用Python開發這個功能更簡單。那麼是否有可能如果我用Python開發這個Web服務並將其用於基於Java的Web應用程序?Python Web服務的Java應用程序?

+0

是的。這是可能的。但它可能很複雜,困難,昂貴或有風險。你有什麼更具體的問題嗎? – 2011-04-01 15:03:46

+1

是的,如果您編寫Web服務權限,則任何語言都應該能夠使用它。 SOAP可以成爲你的朋友 – user489041 2011-04-01 15:34:00

回答

0

我認爲這是可能的。假設您的webservice方法返回一個json字符串。您可以使用此字符串,轉換爲Java中的HashMap並使用這些數據。

我個人比較喜歡cherrypy,爲了方便創建web服務。它也有一個內置的服務器。

您可以使用FlexJSON將json字符串轉換爲HashMap。反序列化方法將有助於這樣做。這是我做到的。

public Map<String, Object> JsonToMap(String data) { 
     Map<String, Object> dataMap; 
     dataMap = new JSONDeserializer<Map>().deserialize(data); 
     return dataMap; 
    } 

這裏,String data是你的python webservice方法應該返回的json字符串。

0

在框架中開發時,使用框架語言進行開發通常比用不同語言開發更簡單。

Servlets是Web服務器(也稱爲Servlet容器)的組件。 Servlet容器和所需的Servlet API都是Java。雖然你可以在某些Python代碼中使用Frankenstein,但通過集成努力最終可以使「簡單」遠遠超出您特別期望的複雜程度,這是不錯的。

如果您想要一個Python Web應用程序,請使用Python Web框架。如果您需要Java Web應用程序,請使用Java框架。不要試圖讓兩個交叉點兼容,因爲集成點(以及使用/提供的便利)甚至不能保證出現在圍欄的「另一側」。

1

這取決於你的意思。你的意思是在應用程序中使用該服務作爲庫嗎?如果是這樣,你可能想看看Jython並將其製作成插件。

但是,如果您希望將服務作爲單獨的應用程序運行,那麼請使用Web界面從Java調用它,這應該不成問題。從理論上講,Web服務的最終用戶(在這種情況下,用戶是你的應用程序)不應該擔心服務的寫入語言;只要標準保持爲(JSON,XML等),大多數語言都能夠一起工作。

0

有很多用於java的web框架,有些比其他框架更好。對於相當全面的參考,請考慮諮詢http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java

Python的確是一種相當直觀的語言,而且由於它經常用作服務器端腳本語言,因此出現了許多令人尊敬的web框架(如webpy和django)。

這取決於您試圖執行的任務。如果你的項目需要一個java小應用程序,你可以將它嵌入到你使用python框架動態編寫的網頁中。但是,如果您正在尋找java和python之間的互操作性,您將希望閱讀更多關於Jython(及其限制)的內容,正如lacqui所建議的。個人來說,我是一個快速,輕量級,實用和簡單的web開發和模板的cherrypy webpy的粉絲,但是,如果速度是一個主要問題,您可能希望在採用動態類型的解釋型語言之前考慮這一點。 Python 3的平均爲比Java 6在JVM(http://shootout.alioth.debian.org/u32q/benchmark.php?test=all & LANG = python3 & LANG2 = JAVA)

慢約50倍有關Java與Python的比較的更多信息,請參見http://pythonconquerstheuniverse.wordpress.com/category/java-and-python/