2009-07-29 62 views
3

我必须在只支持Java的服务器上部署一些Web服务,但其中一些将使用Perl或Python完成。我想知道是否有可能开发一个Java包装来调用用perl或python编写的特定代码。所以,我想要使用Java中的所有Web服务,但其中一些会使用其他语言调用一些代码。Java包装到Perl/Python代码

在此先感谢。 Regards, Ukrania

+0

从perl/python脚本生成一个.class文件也是一个解决方案,因为我可以仅使用.class文件部署Web服务。 – 2009-07-29 17:32:30

回答

3

这很大程度上取决于您的需求。如果Jython是Python代码的选项(它并不总是100%兼容),那么它可能是最好的选择。否则,您将需要使用Java的Process Builder直接调用解析器并将结果返回到其输出流。这不会很快(但是Jython的速度并不快,相对于普通的Java代码),但它是一个非常灵活的解决方案。

+0

我必须完全支持python,我只是想以最简单的方式调用或使用其他程序员制作的代码。最后,我必须使用Web服务发布这些功能,这些功能需要在java上进行,因为WSO2仅支持Java Web服务(我使用WSO2来保证Web服务的安全)。 – 2009-07-29 17:44:34

0

我曾经使用过一段时间称为Jython,它允许您从Java执行Python代码。这有点古怪,但我得到它做我所需要的。

http://www.jython.org

3

对于它的Python的一部分,你可以使用Jython来从您的Java虚拟机上运行Python代码。它将与您的Java代码完全集成,作为奖励。

+0

我将准备好一个Python程序到最终版本,使用Jython它会调用已写入的函数或我需要重写代码? – 2009-07-29 17:30:37

+0

是的,你应该可以调用现有的Python函数。 Jython几乎可以运行任何Python代码,但并不是所有的Python标准模块都可以在Jython中使用。我相信如果这些模块是用C编写的话,这很有可能。 – 2009-07-29 20:13:18