PHP-Java-Bridge使用笔记,2014年9月最新版
这是我在做平安银行开发的时候,本地使用PHP环境,平安银行接口为Java接口的时候,采用PHP-Java-Bridge的方式调用接口的笔记。因为现在网上的教程基本上都不行了,所以在这里贴出我能使用的而且目前网上最新的版本(--),如果有错,请通过文章中的邮箱邮件联系,谢谢。
php-java-bridge bridge
/**============================================================
* @author ken(695093513@qq.com)
* @date 2014-09-09
*
==============================================================**/
/**============================================================
* 版本与环境
*
==============================================================**/
版本:
、PHP版本:最高为5.,当前测试为5./5.3
、JDK:官方最新版本,当前测试为1.
、php-java-bridge:官方最新版本,当前测试为6.2.1
、操作系统:Windows7 32位/64位 | Linux(Centos6.)
/**============================================================
* 安装和使用
*
==============================================================**/
第一步:安装
、JDK的安装:正常安装即可,并配置好环境变量
、PHP的安装:正常安装即可
、php-java-bridge的安装:
①先下载Java服务器Tomcat正常安装,安装好后,开启Tomcat服务器
②将下载的php-java-bridge包放到webapps下面
③等待Tomcat执行解析,会在该目录下面生成相同名字的文件夹
④将该文件夹拷贝到Apache服务器下面使用
(注:网上的教程可以正常使用,调用java系统函数和简单的jar包,但是对于复杂的jar包会遇到各种各样的问题,所以建议使用这种方式)
第二步:使用
、不需要开启Tomcat(最好关闭掉),开启apache服务器,双击运行javabridge.jar,选择8080端口(javabridge.jar也需要放到java虚拟机下面,参见下面第二点规则)。
、尽可能的将jar包放到java虚拟机下面,即jre安装下面(比如:C:\Program Files\Java\jre1..0_20\lib\ext)
、在PHP文件中不需要再引用jar包,因为放到虚拟机下面去了,java会自动调用
(注:第1点中的javabridge.jar是在第一步:安装中第3点中获得的)
/**============================================================
* 其他使用方法和注意事项
*
==============================================================**/
关于PHP-Java-Bridge的各种函数使用:
、高版本的java_require不再使用,也无法使用,由于放到java虚拟机下面,则不需要再手动引入包文件
、java_value()用于获取值,而且必须使用该函数获取值
(特别注意:如果该值需要存入数据库,那么必须使用该java_value函数,不然会报错,或者无法存入数据库)
、java_inspect()对实例化或者方法进行print_r类似的输出
(注:请不要直接使用var_dump这样的输出方法输出java的类、方法、变量,需要使用java_inspect或者java_value,例如:var_dump(java_inspect($abc)))
、实例化使用 $test = new Java("Test")的方式,如果实例化的方法中存在参数,可以这样new Java("Test","pram")
注意事项:
、务必确保对java.inc的引用,确保引用正确
、务必确保对jar包放在能引用的地方,比如java虚拟机jre下面
、在PHP中调用Java使用PHP的的写法即可
/**============================================================
* 附录1:各种报错问题处理
* 附录2:PHP实例代码
* 附录3:PHP-Java-bridge文件包解压后目录图
*
==============================================================**/
附录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","");
$input->put("orderId","");
$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-Java-Bridge使用笔记,2014年9月最新版的更多相关文章
- iOS程序上传流程 2014年9月最新版
程序上传步骤: 1.登录账户,点击Manage Your Apps 2.点击Add New App 3.注册Bundle ID,点击蓝色的here 4.进入了注册页面,首先要填写App ID的一个描述 ...
- java JDK8 学习笔记——第16章 整合数据库
第十六章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API中的接口会有数据库厂商操作,称为JDBC驱动程 ...
- Java WebService学习笔记 - Axis(一)
WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
随机推荐
- Linux环境下的编译,链接与库的使用
参考博客: http://www.cnblogs.com/qytan36/archive/2010/05/25/1743955.html http://m.blog.csdn.net/article/ ...
- 生产库MySQL配置文件my.cnf详解
OS:CentOS6.3 DB:5.6.16 [client] #客户端port = 3306 #数据库端口3306socket = /my/log/mysql.sock #MySQL套接字,多实例下 ...
- ASP.NET内置对象之Request传递请求对象
Request对象是HttpRequest类的一个实例,Request对象用于读取客户端在Web请求期间发送的HTTP值.Request对象常用的属性如下所示. q QueryString: ...
- 怎么解决/bin/sh: arm-linux-gcc: not found make
1.arm-linux-gcc 环境变量没有设,所以找不到这个编译器 在/etc/profile里添加arm-linux-gcc的存放路径 sudo -s gedit /etc/profile 编 ...
- Silverlight 调用 aspx 相关文件
private void Button_Click_1(object sender, RoutedEventArgs e) { WebClient wb = new WebClient(); wb.D ...
- [转]How do I use software from a PPA
[转]How do I use software from a PPA? https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media To s ...
- ALTERA MAX10官方评估板,新鲜出炉!
刚刚拿到骏龙提供的ALTERA MAX10官方评估板,还热乎呢,呵呵!赶紧跟大家分享一下 板子很简单,把IO口都扩展出来了,其他功能基本上没有. FPGA型号是10M08SAE144C8GES,144 ...
- linux系统下sd卡的备份与恢复
linux系统下sd卡的备份与恢复 现在各种的开发板都是从sd卡上面启动的,因此大修改工作之前很有必要备份一下. 备份 在linux系统下用读卡器读取sd卡 用df -h命令看分区的路径 一般都是/d ...
- 树莓派最简易Wifi配置
树莓派最简易Wifi配置 相信我,连博客都会偷懒写个最简易给你看 前提,只有一根网线没有网络的前提下进行的. 基于Win10系统和树莓派2015-05-05-raspbian-wheezy.img测试 ...
- 随堂作业——到底有几个“1”(C++)
一.设计思路 在课堂上讨论的时候,老师提出的思路是利用之前的结果计算出比它更大的数字的“1”.但是我不是这么想的,我是把输入的正整数每位上的数都分解出来计算.如abc,就先算c,再加上b,最后再加上a ...