2011-04-01 173 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/