如何在 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 服务器通信