rinald_未来往事

PHP Javabridge使用

PHP
一、php如何调取java方法:

php调用java的方法有Javabridge,也有rpc。php里调用java平台封装好的jar包里的class类和方法推荐使用php-java-bridge做桥接。

二、Javabridge工作原理:

通过服务端打开一个java的监听端口,php调用java时,将对应的方法调用转发给java的指定端口,由java执行完成后将结果返回给php。可以简单的理解php在这里扮演的角色是代理转发,把调用的类方法转交给后端java执行,是一种较为典型的代理模式。

三、使用步骤:

1、服务端部署Apache/Nginx+PHP+JDK+Tomcat
2、下载本文附件Javabridge,文件说明:
(1)JavaBridge.jar:用于搭建WEB服务器接口的核心JAVA应用程序包(本文附带的版本是7.2.1)。
(2)Java.inc:供PHP语言调用的方法包,主要是Java类。
3、修改配置文件(如果你需要通过IP或域名形式引入java.inc的话)
打开php的配置文件php.ini,查找到allow_url_include属性,若 allow_url_include = Off 那么将其改成 allow_url_include = On ,然后重启Apache服务。 若依然无法支持URL访问方式,再检查 allow_url_fopen 属性,将其也设置成开启状态:allow_url_fopen = On (这个属性默认应该是开启的:On),然后重启Apache服务。
4、解压打开下载后的php_java_bridge目录,拷贝JavaBridge目录到Tomcat的Webapps目录下。然后再将demo文件夹拷贝到PHP服务器的网站根目录下。之后访问:http://localhost/demo/index.php,若能正确显示JavaBridge的相关介绍信息,说明JavaBridge配置成功。
5、使用php调通java的类方法

  1. <?php
  2. $ip = GetHostByName($_SERVER['SERVER_NAME']); //获取本机IP
  3. require_once("http://".$ip.":8080/JavaBridge/java/Java.inc"); //php调用java的接口,路径问题需要注意
  4. java_set_file_encoding("UTF-8");//设置JAVA编码,GBK/UTF-8请设置正确的编码
  5. $encryptor = new Java("COM.CDB.EnDecryptAlgorithm.MCipherEncryptor",'012345678');//初始化java类。第一个参数是JAVA开发的类的名字包含包路径;第二个参数为可选参数,如果JAVA下的类需要使用构造函数,可以使用第二个参数传入
  6. $cdbParam = 'userid=2018&site=fity.cn';
  7. $encryResult = $encryptor->doEncrypt($cdbParam);
  8. $result = java_values($encryResult);

6、Javabridge常用函数说明:
(1)java_value()用于获取值,而且必须使用该函数获取值
(特别注意:如果该值需要存入数据库,那么必须使用该java_value函数,不然会报错,或者无法存入数据库)
(2)java_inspect()对实例化或者方法进行print_r类似的输出
(注:请不要直接使用var_dump这样的输出方法输出java的类、方法、变量,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))

原文作者:rinald
原文地址:https://fity.cn/post/654.html
互联网技术更新较快,本站很多文章具有实效性,我会及时更新原文,但转载的文章无法通知更新。为了不给读者造成困惑或误导,请您在转载时保留此出处信息,尊重别人也是尊重自己。

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。