PHP-Java-Bridge使用笔记

 更新时间:2014年09月22日 09:40:47   投稿:hebedich  
这是我在做平安银行开发的时候,本地使用PHP环境,平安银行接口为Java接口的时候,采用PHP-Java-Bridge的方式调用接口的笔记。因为现在网上的教程基本上都不行了,所以在这里贴出我能使用的而且目前网上最新的版本(2014-09-19),如果有错,请通过邮件联系,谢谢。

/**============================================================

* @author  ken(695093513@qq.com)

* @date    2014-09-09

*
==============================================================**/

/**============================================================

* 版本与环境

*
==============================================================**/

版本:

1、PHP版本:最高为5.4,当前测试为5.4/5.3

2、JDK:官方最新版本,当前测试为1.8

3、php-java-bridge:官方最新版本,当前测试为6.2.1

4、操作系统:Windows7 32位/64位 | Linux(Centos6.5)

/**============================================================

* 安装和使用

*
==============================================================**/

第一步:安装

1、JDK的安装:正常安装即可,并配置好环境变量

2、PHP的安装:正常安装即可

3、php-java-bridge的安装:

①先下载Java服务器Tomcat正常安装,安装好后,开启Tomcat服务器

②将下载的php-java-bridge包放到webapps下面

③等待Tomcat执行解析,会在该目录下面生成相同名字的文件夹

④将该文件夹拷贝到Apache服务器下面使用

(注:网上的教程可以正常使用,调用java系统函数和简单的jar包,但是对于复杂的jar包会遇到各种各样的问题,所以建议使用这种方式)

第二步:使用

1、不需要开启Tomcat(最好关闭掉),开启apache服务器,双击运行javabridge.jar,选择8080端口(javabridge.jar也需要放到java虚拟机下面,参见下面第二点规则)。

2、尽可能的将jar包放到java虚拟机下面,即jre安装下面(比如:C:\Program Files\Java\jre1.8.0_20\lib\ext)

3、在PHP文件中不需要再引用jar包,因为放到虚拟机下面去了,java会自动调用

(注:第1点中的javabridge.jar是在第一步:安装中第3点中获得的)

/**============================================================

* 其他使用方法和注意事项

*
==============================================================**/

关于PHP-Java-Bridge的各种函数使用:

1、高版本的java_require不再使用,也无法使用,由于放到java虚拟机下面,则不需要再手动引入包文件

2、java_value()用于获取值,而且必须使用该函数获取值

(特别注意:如果该值需要存入数据库,那么必须使用该java_value函数,不然会报错,或者无法存入数据库)

3、java_inspect()对实例化或者方法进行print_r类似的输出

(注:请不要直接使用var_dump这样的输出方法输出java的类、方法、变量,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))

4、实例化使用 $test = new Java("Test")的方式,如果实例化的方法中存在参数,可以这样new Java("Test","pram")

注意事项:

1、务必确保对java.inc的引用,确保引用正确

2、务必确保对jar包放在能引用的地方,比如java虚拟机jre下面

3、在PHP中调用Java使用PHP的的写法即可

/**============================================================

* 附录1:各种报错问题处理

* 附录2:PHP实例代码

* 附录3:PHP-Java-bridge文件包解压后目录图

*

==============================================================**/

附录1:各种报错问题处理

1、参照上面的“其他使用方法和注意事项”,大多数问题都是路径引用的问题,只要处理好了,正确获得了,就不会出问题

附录2:PHP实例代码

require_once("/java/Java.inc");

$util = new Java("com.sdb.payclient.core.PayclientInterfaceUtil");

$input = new Java("com.ecc.emp.data.KeyedCollection");

$signDataput = new Java("com.ecc.emp.data.KeyedCollection");

$input->put("masterId","111111");

$input->put("orderId","222222");

$signDataput = $util->getSignData($input);

$orig = java_values($signDataput->getDataValue("orig"));

$sign = $signDataput->getDataValue("sign");

echo java_values($sign);

附录3:PHP-Java-bridge文件包解压后目录图

bridge
 --java
 java.inc
 JavaProxy.php
 --WEB-INF
 --cgi
 --...
 --lib
 php-script.jar
 php-servlet.jar
 --pear
 web.xml
 weblogic.xml

相关文章

  • PHP文件大小格式化函数合集

    PHP文件大小格式化函数合集

    php中有一个系统自带的计算文件大小的函数,就是filesize(),但是这个函数是以字节为单位的,在一些情况下,我们需要很直观的了解一个文件大小,就不仅仅需要字节B这个单位了,还需要KB,MB,GB,甚至更大TB,PB,所以我们需要自己写一些函数来格式化filesize()的输出结果
    2014-03-03
  • PHP去掉从word直接粘贴过来的没有用格式的函数

    PHP去掉从word直接粘贴过来的没有用格式的函数

    通常我们会遇到直接把word内的内容,直接粘贴到文本编辑器中。这时候会出现在文本编辑器中有一些word内的没用的标签内容
    2012-10-10
  • 深入分析php之面向对象

    深入分析php之面向对象

    本篇文章是对php中的面向对象进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法

    Laravel框架运行出错提示RuntimeException No application encryption ke

    这篇文章主要介绍了Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法,涉及Laravel框架相关配置、设置与运行操作技巧,需要的朋友可以参考下
    2019-04-04
  • Yii 2.0自带的验证码使用经验分享

    Yii 2.0自带的验证码使用经验分享

    这篇文章主要给大家介绍了关于使用Yii 2.0自带验证码的一些经验,方便新手们快速上手,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • 学习php分页代码实例

    学习php分页代码实例

    学习PHP,一定会遇到操作MYSQL数据库,而且会对数据库里的数据做分页显示出来的问题,下面写一个小例子学习一下PHP分页的方法。
    2013-10-10
  • PHP register_shutdown_function函数的深入解析

    PHP register_shutdown_function函数的深入解析

    本篇文章是对PHP register_shutdown_function函数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • TP3.2框架分页相关实现方法分析

    TP3.2框架分页相关实现方法分析

    这篇文章主要介绍了TP3.2框架分页相关实现方法,结合实例形式分析了TP3.2框架分页相关步骤、功能实现方法与操作技巧,需要的朋友可以参考下
    2020-06-06
  • Thinkphp5.0 框架Model模型简单用法分析

    Thinkphp5.0 框架Model模型简单用法分析

    这篇文章主要介绍了Thinkphp5.0 框架Model模型简单用法,结合实例形式分析了thinkPHP5.0框架模型Model常用方法的简单使用技巧,需要的朋友可以参考下
    2019-10-10
  • php程序总是提示验证码输入有误解决方案

    php程序总是提示验证码输入有误解决方案

    这篇文章主要介绍了php程序总是提示验证码输入有误解决方案,需要的朋友可以参考下
    2015-01-01

最新评论