用于Java应用程序的Python Web服务?

时间:2011-04-01 15:01:06

标签: java python web-services web-applications

如果这是一个愚蠢的问题,请原谅我。我对构建Web服务和完整的Web应用程序完全陌生。 我想为基于Java的Web应用程序开发特定的功能。但是,使用Python开发此功能更简单。那么有可能如果我使用Python开发这个Web服务并将其用于基于Java的webapp?

4 个答案:

答案 0 :(得分:1)

我认为这是可能的。假设您的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数据是你的python webservice方法应该返回的json字符串。

答案 1 :(得分:1)

这取决于你的意思。您的意思是将该服务用作应用程序中的库吗?如果是这样,您可能需要查看Jython并将其设置为插件。

但是,如果您想将服务作为单独的应用程序运行,那么使用Web界面从Java调用它,这应该没问题。从理论上讲,Web服务的最终用户(在这种情况下,用户就是您的应用程序)应该永远不必担心服务所使用的语言;只要标准保持(JSON,XML等),大多数语言都有能力一起工作。

答案 2 :(得分:0)

在框架中开发时,使用框架语言开发通常比使用不同语言开发更简单。

Servlet是Web服务器的组件(也称为Servlet容器)。 Servlet容器和所需的Servlet API都是Java。虽然你可以在某种Python代码中使用Frankenstein,但是整合工作最终会使“简单性”远比你特别想要的复杂得多。

如果您需要Python Web应用程序,请使用Python Web框架。如果需要Java Web应用程序,请使用Java框架。不要试图使两个交叉兼容,因为甚至不能保证集成点(以及使用/提供的便利性)出现在围栏的“另一侧”。

答案 3 :(得分:0)

java有很多web框架,有些比其他框架更好。有关相当全面的参考,请考虑咨询http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java

Python确实是一种相当直观的语言,因为它经常被用作服务器端脚本语言,所以出现了很多值得尊敬的Web框架(如webpy和django)。

这取决于您尝试实施的任务。如果你的项目需要一个java applet,你可以将它嵌入一个使用python框架动态编写的网页中。但是,如果您正在寻找java和python之间的互操作性,那么您将希望阅读更多关于Jython(以及它的局限性),如lacqui所建议的那样。

就个人而言,我喜欢webpy over cherrypy,以便快速,轻量,实用且易于开发和模板化,但是,如果速度是一个主要问题,您可能希望在采用动态类型解释语言之前考虑这一点。与JVM相比,Python 3平均比Java 6快约50倍(http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=python3&lang2=java)

有关java与python比较的更多信息,请查看http://pythonconquerstheuniverse.wordpress.com/category/java-and-python/