【问题标题】:Using Java RMI to invoke Python method使用 Java RMI 调用 Python 方法
【发布时间】:2012-10-05 02:28:27
【问题描述】:

我有一个通过 Python web2py 创建的远程方法。如何从 Java 测试和调用方法?

我能够测试该方法是否实现@service.xmlrpc,但我如何测试该方法是否实现@service.run

【问题讨论】:

  • 基本上我想在 python 远程方法上测试 java rmi。不是 XMLRPC。

标签: java python rmi rpc web2py


【解决方案1】:

如果这个问题可以松散地解释为“使用 Java 调用 Python 方法”(如果您不需要专门使用 Java RMI),那么您可以使用其他框架来桥接 Java 和 python。例如。一种开源许可替代方案是Versile(完全披露:我是开发人员之一)。有关使用示例,请参阅 Versile Python 和 Versile Java 文档。

【讨论】:

    【解决方案2】:

    除非您使用某种 java-python 桥 (jython),否则这是不可能的,并且仍然是 Java RMI,即一个 java 程序调用另一个包装您的 python 脚本的 java 程序。

    【讨论】:

    • Python 脚本由引擎解释。该引擎是一个提供大量服务的执行平台。
    • @Aubin 除非这些服务包含功能齐全的 JVM,否则评论是无关紧要的。
    【解决方案3】:

    如果你能做到,我会很惊讶。 Java RMI 需要 Java 对等体。

    【讨论】:

    • 1) Java RMI 已经结束了 IIOP 2) 它是一个套接字通信,如果你想用 COBOL、Pascal 或任何你想要的方式对其进行编码,你可以;-)
    • @Aubin Java RMI 实际上超过了 JRMP、IIOP 或 JERI,以及其他一些专有实现,如果它涉及命名,正如您在回答中建议的那样,它肯定超过 JRMP,这反过来又在需要 JVM 的对象序列化上分层。您似乎对此了解不多。
    【解决方案4】:

    你必须编写一个接口 X extends Remote 声明一个方法“myMethod()”。

    X x = (X)Naming.lookup( "//a/b/c" );
    x.myMethod();
    

    其中一个困难是在服务器端管理命名。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    相关资源
    最近更新 更多