如何在 PHP 中与 java 代码进行通信

Posted

技术标签:

【中文标题】如何在 PHP 中与 java 代码进行通信【英文标题】:How to communicate with java code in PHP 【发布时间】:2013-10-17 17:49:12 【问题描述】:

G' 日,

我有一个需求,需要在 php 脚本中调用 java 函数。我已经了解了 PHP JAVA Bridge 概念,但无法从 PHP 脚本调用。可能是我的流程错了。请找到我已实施的以下过程。

    步骤-1 C:\xampp\htdocs\tomcat\webapp 需要害JavaBridge.war 在这个网络应用中。

    步骤 - 2 提取此 (JavaBridge.war) 文件。然后去 JavaBridge/WEB-INF/lib/ 并复制下面三个文件并害虫进入 C:\xampp\htdocs\tomcat\webapp\bin

    php-script.jar php-servlet.jar servlet_api.jar

    步骤-3 编辑 Tomcat conf/web.xml。添加以下9行 用 + 标记:

        + <listener><listener-class>php.java.servlet.ContextLoaderListener</listener-class></listener>
        + <servlet><servlet-name>PhpJavaServlet</servlet-name><servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
        + </servlet>
        + <servlet><servlet-name>PhpCGIServlet</servlet-name><servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
        + <init-param><param-name>prefer_system_php_exec</param-name><param-value>On</param-value></init-param>
        + <init-param><param-name>php_include_java</param-name><param-value>Off</param-value></init-param>
        + </servlet>
        + <servlet-mapping><servlet-name>PhpJavaServlet</servlet-name><url-pattern>*.phpjavabridge</url-pattern>
    

    + PhpCGIServlet*.php ...

    步骤 - 4 再次启动 Tomcat。现在您可以将 PHP 脚本添加到 tomcat。

    step - 5 添加 PHP 测试文件

    <?php require_once("java/Java.inc");
    echo java("java.lang.System")->getProperties(); ?> 
    

    到一些网络上下文,例如“示例”,然后浏览到 http://yourHost.com:8080/examples/test.php.

它工作正常,但是当我在 htdocs (http://yourHost.com/test.php) 中运行这个文件时,它会抛出异常。

如果我实施了错误的流程,请建议我,或者让我知道是否有任何新界面可以解决这个问题。

非常感谢 Adv 的帮助。

【问题讨论】:

有哪些例外情况? 谢谢@MattWilson,我会尽快联系您 警告:require_once(): http:// wrapper is disabled in server configuration by allow_url_include=0 in C:\xampp\htdocs\test\testjava.php on line 2 警告:require_once(@ 987654323@): 无法打开流: 在第 2 行的 C:\xampp\htdocs\test\testjava.php 中找不到合适的包装器致命错误: require_once(): 无法打开需要'localhost:8080/JavaBridge/java/Java.inc' (include_path=' .;C:\xampp\php\PEAR') 在第 2 行的 C:\xampp\htdocs\test\testjava.php 中 【参考方案1】:

我认为您需要将 php.ini 设置为允许包含 url。 The docs.

【讨论】:

谢谢。我正在努力,一旦它可以正常工作,让你知道

以上是关于如何在 PHP 中与 java 代码进行通信的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django API GET 请求中与 websocket 通信?

如何通过 OpenSSL 在 Shell 中与 IMAP 服务器通信

在 NodeJS 中与 C++ 代码通信

如何在 Java 中与智能卡交互?

如何在 Java 中与 HttpGet 一起发送 cookie

如何在 PHP 输出字符串中修复“网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)”