ok,所以我在网上搜索了可能的实现,但我设法找到的是Django项目通过Jython在Java平台上实现。但我想做相反的,即实现/集成java项目(在我的情况下是SAIKU服务器)在Django平台上。
问题是,这是可能的吗?如果是,那么请告诉我解决方法。
提前致谢=)
针对您的具体需求,我建议使用RESTFul API访问Saiku Server。
但是如果你需要从Python运行Java类。
以下是可供您选择的选项:
-
JCC——一个c++代码生成器,用于从c++/Python调用Java。它生成通过JNI与Java虚拟机通信的Python扩展。正如它所暗示的那样,这将需要编译每一个可能的调用。然而,这个项目是PyLucene项目的骨干。
-
CodeMesh。c++代码生成器。
-
Py4J Python程序在Python解释器中运行,动态访问Java虚拟机中的Java对象。
-
jype允许python程序完全访问java类库。这是通过在两个虚拟机的本机级别上进行接口来完成的。然而,在这方面没有最近的进展。
一般来说,通过REST或RCP进行松耦合集成比基于紧密耦合的JNI实现更容易维护。
没有办法在Python运行时中运行Java(这听起来像是您想要的)。有Java到Python的"翻译器"可用,但它们很糟糕。老实说,如果出于某种原因需要Java服务器和Django放在同一个进程中,Jython是最好的选择。
在我的脑海里,除了这个还有很多选择:
- 为您的服务器实现Python绑定(参见PyLucene的示例)
- 在Java服务器中实现一个socket服务器,Python可以直接与之通信