当前位置:首页 > 日记 > 正文

PHP和java之间通信的实现

PHP和java之间通信的实现
起源:

最近做了一个集成平台和网上银行的小东西,程序是开源的欧美汇,网络接口也很标准,整个文件很小,唯一的问题是使用网上银行,签名和验证签名只有lib java和c,java也熟悉一些,所以java使用一个签名和签名验证接口的选择。

方法uff1a

有很多关于PHP和java上网。一般来说,有几种方法可以做到这一:

PHP直接通过命令来调用命令行执行或系统等,然后运行java你好这类的java程序,但缺点是明显的,各种方法都是不好的,互动的java类,它最终得到的运行结果也限行数,所以放弃。
通过开放的java方面相关的WebService服务WebService通信方式的PHP和java,然后通过XML或JSON PHP java webservice调用,这种方式是公开的,可以实现定制的功能也很强,但缺点是明显的。
安装Tomcat服务器在java方面发布相关消息
WebService已经写认证,使安全认证相关的签字和检查过程。
PHP通过php-java-bridge模块实现了PHP和java之间的通信,这是在配置和安装相对简单。所以我们选择使用这个模块的PHP和java之间的沟通。

第一步

安装java环境和php环境CentOS安装PHP环境稍下百胜java环境

yum安装java
安装yum工具安装java jdk开发* * *

如果java测试版是类似下面的输出,java环境安装成功

复制代码代码如下所示:
java版的1.7.0_25
OpenJDK的运行环境(rhel-2.3.10.4。el6_4-x86_64)
OpenJDK的64位服务器虚拟机(建设23.7-b01,混合模式)
第二步骤

编译和安装PHP java桥模块

下载包:

对php-java-bridge4.0的版本是4,最新版本应该是6,下载sourceforg,但差值6的使用和4似乎有点大

编译安装:

解压缩PHP java桥,进入PHP java java桥桥目录,PHP编译成PHP扩展

复制代码代码如下所示:
焦油xzvf php-java-bridge_4.0.1.orig.tar.gz
CD PHP java桥
phpize
。 /配置禁用Servlet,java =——PHP配置= / usr / / / 本地PHP /斌/ PHP配置
使
安装
如果phpize命令无效后运行,可以通过安装PHP脚本开发
在配置java参数是填充在JDK和JRE的路径是PHP的PHP配置文件的目录。
在编译完成后,java.so文件和javabridge.jar加入到PHP的PHP扩展库 / / / no-debug-non-zts-20060613

第三个步骤

配置相关参数
打开php.ini文件,添加以下文件末尾的参数。

复制代码代码如下所示:
推广= / usr / / / lib本地PHP PHP / / / /扩展no-debug-non-zts-20060613 java。所以
java } {

java。java_home = / usr / / / java-1.7.0-openjdk JVM库。x86_64
java java = / usr / / / java-1.7.0-openjdk JVM库。x86_64 / / / java jre的bin
java。log_file = / / / var日志PHP java桥。日志
java的类路径 / usr / / / lib本地PHP PHP / / / /扩展no-debug-non-zts-20060613 javabridge。罐
java。LIBPATH = / usr / / / lib本地PHP PHP / / /扩展no-debug-non-zts-20060613
java。log_level =2
如果是在mod_php方式运行,重启Apache

如果是在fast_cgi方式运行PHP,重启php-fpm和Nginx或Apache服务器

第四个步骤

测试

复制代码代码如下所示:
Phpinfo();
运行结果
实践证明,该分机安装正确,可正常使用。

刚才(调用java类标准)

复制代码代码如下所示:
< PHP
$系统=新的java(java。lang.system );
打印java版本= 。$系统-> getProperty(java版)。
$str =新的java(java。lang.string );
回声$;
2(调用自定义类)

/数据目录下创建一个新的测试目录,然后创建一个hello.java文件作为测试

复制代码代码如下所示:
公共课你好
{
public static void main(String { } args)
{
System.out.println(PHP java桥试验);
}

公共字符串gethi(){
返回嗨,每个硅单向扩散晶体管Linux成员;
}
}
复制代码代码如下所示:
javac hello.java
java你好
罐子CVF hello.jar Hello.class
包装后的Hello.class到一个jar包,然后我们可以调用gethi()通过实例化一个类java php中的直接方法。

复制代码代码如下所示:
ini_set('display_errors ',1);
java_require( / / /你好测试数据。罐);
$你好=新的java(你好);
嗨你好->美元=美元gethi();
回音嗨;
php_hi美元=(字符串)$嗨;
var_dump($ php_hi);
运行结果:

复制代码代码如下所示:
{ O(字符串):嗨,每个硅单向扩散晶体管Linux成员}
字符串(27)嗨,每个硅单向扩散晶体管Linux成员
一个值得注意的小问题:

1,公共字符串gethi()在java不能省略,否则默认gethi()方法是私有的,所以它不能调用PHP。

2,调用java PHP类之后,结果是O(变量)的java。最好是强制类型转换,并将其转换为PHP的变量类型。

3,当我们在java_require(),我们必须使用绝对路径,所以我们没有把我们想打电话到LIBPATH我们配置的jar包。

4。在新的java(),类名称的第一个字母要大,否则会找不到错误的java类,并不会被发现。

相关文章

谷歌测试新的照片应用程序,以改善全

谷歌测试新的照片应用程序,以改善全

照片,应用程序,全景,自拍,效果,{新闻}北京4月2日消息,据科技网站Engadget报道,据知情人士透露,谷歌正在测试一种新的摄像头应用程序版本,该应用程序的新特性包括一个新的用户界面,肖像的背景虚化效果,改进的全景模式和Photo Sphere模式。 谷歌一…

看似强大的MySQL备份策略共享

看似强大的MySQL备份策略共享

备份,强大,策略,电脑软件,MySQL,下午两点在每天凌晨2点,相应的备份数据库,并binlog日志文件是在相应的数据库更新。 如果发现数据库错误,它恢复过去的转储备份是必要的,然后恢复一天的binlog日志文件。 举一个例子:uff1a 每天12点: 复制代码代…

Windows无法解决添加/删除程序的问

Windows无法解决添加/删除程序的问

删除程序,电脑软件,Windows,注释:无法打开添加/删除程序的原因是动态链接库的注册无效。只要文件重新注册,具体的解决方案如下。有类似情况的朋友可以参考一下,希望能对你有所帮助。 不能打开。添加/删除程序的原因是动态链接库的注册是无效…

该webcamrt.exe-意义webcamrt过程

该webcamrt.exe-意义webcamrt过程

意义,过程,电脑软件,webcamrt,exe,综述:简要介绍了webcamrt.exe - webcamrt过程 进程文件:webcamrt或webcamrt.exe 进程名称:WebcamRT 过程类别:安全风险的过程 英文描述: Webcamrt.exe是一个过程,是与罗技网站,相关的,它也被称为对与错。 中文参…

让PHP将简单地从基于GB库的处理类

让PHP将简单地从基于GB库的处理类

下载,示例代码,简单,电脑软件,PHP,这个类的设计思想是从jQuery,通过连接的方式来操作图片,如: 复制代码代码如下所示: 图像=新usaimage美元(阵列('filepath= > 'image1 .jpg)); 将一个图片封面、第二个和第三个参数放在x位置,y $图像->重叠(image99 …

跟踪SQL执行时间在ADF中的实现代码

跟踪SQL执行时间在ADF中的实现代码

执行时间,跟踪,代码,电脑软件,SQL,ADF是Oracle提供的一套企业开发解决方案。 在最近的性能测试,必须在当前页多少SQL查询和花费多少时间。首先要思考的是普通log4jdbc结果ADF不支持包的司机。后试图拦截在奥雷斯分贝水平,它是更复杂的设置对…

H---安装使用Linux

H---安装使用Linux

安装使用,电脑软件,Linux,H ---安装使用Linux Linux下安装H主要分为以下几个步骤:我用蚀刻版debian,但下面的安装过程中应适用于所有的Linux releases.win2003安装 1 downloads.windows7安装软件 需要下载的软件——以下是Linux平台的所有软…

同步辅助安装软件将删除手机的原始

同步辅助安装软件将删除手机的原始

删除,安装软件,解决方案,同步,原始,问题: 我听说同步助手很容易使用。如果你想问一下,如果你安装了一个应用软件和你的助手,你会失去原来的应用程序时,iTunes安装软件同步 答案uff1a 当同步助理没有安装软件时,手机的原始应用程序丢失了。 同…

linux下删除乱码文件名称的方法

linux下删除乱码文件名称的方法

方法,删除,乱码,文件名称,电脑软件,注释:在Linux下,有一个随机代码文件名。这里有一个具体的删除方法,需要的朋友可以参考一下。 linux删除随机代码文件名,不废话: 1。ls - i列出文件的节点ID,如:123456789 2。找到 / -析123456789打印-exec rm…

在Linux添加普通新用户

在Linux添加普通新用户

新用户,电脑软件,Linux,点评:加入Linux常见的新用户,超级用户(也称为root)是一个系统中的任何文件电力专用账户。在日常工作中,最好不要使用超级用户帐号进入系统,因为任何错误的操作可能导致巨大的损失。由于超级用户帐户该系统具有系统建立后提…

mysql存储过程与函数差异化

mysql存储过程与函数差异化

存储过程,差异化,函数,电脑软件,mysql,存储过程是一组用户定义的SQL语句,涉及特定的表或其他对象,可以调用存储过程,通常定义数据库的函数和方法,它接收一些参数并返回类型的值,不涉及特定的用户表。 存储过程和函数之间有几个不同之处: 1)在一…

Oracle导出SQL语句的结果集和SQL语

Oracle导出SQL语句的结果集和SQL语

语句,结果集,执行,电脑软件,Oracle,线轴——导出SQL语句的结果集 SQL>阀芯C: testsql.sql SQL SELECT * FROM table_name >; 脱机; SAV——保存SQL语句的执行 SQL SELECT * FROM table_name >; SQL> SAV C: test.sql;…