java直接调用php文件_php调用java接口的几种方式
java怎么调用php的语句是什么
PHP调用JAVA方式
① 背景在开发招商银行信用卡分期付款功能过程中,在支付成功之后需要对银行的返回数据进行签名验证,因签名加密方式招商银行是不提供的,只提供了相应的JAVA验证类测试例子,而本项目采用的是PHP架构方式,所以呢需要PHP调用JAVA的验证类来测试签名是否正确.
本文档提供一种PHP调用JAVA类的方式来进行招行的支付成功签名验证,本方法也可用于其他银行的JAVA签名验证方式.
名词
解释说明
php-java-bridge
PHP和JAVA的连接桥
编译及安装:
/usr/local/php/bin/phpize
./configure --disable-servlet --with-java=/usr/local/java/,/usr/local/java/jre --with-php-config=/usr/local/php/bin/php-configmake make install
vim /usr/local/php/etc/php.ini
[新增]
extension=java.so
[java]
java.java_home="/usr/local/java/"
java.java="/usr/local/java/jre/bin/java"
重新启动nginx或者apache,输入?php phpinfo();?可以看到java support
Enabled
java bridge
java.log_level
手动启动javaBridge
解压javaBridge.jar,取出java目录下相关的Java.inc文件测试代码:
require_once("java/Java.inc");
$string = new Java("java.lang.String", "HelloWorld");echo $string;
$system=new Java("java.lang.System");
下述描述在实际配置测试过程中可能会碰到的问题及解决方法:
问题1:
configure: error: host_alias is not set. Make sure to run config.guessBack-end configuration failed.
./configure --disable-backend --with-java=JAVA_HOME
configure: error: ./configure.gnu failed for server安装yum install libtool即可
事项1:
取消对这个部分的注释,以便允许对您的 Java 类进行远程访问init-param
param-namepromiscuous/param-name
param-valueOn/param-value
/init-param
个人的实际测试代码如下:
private function _checkSign($strText, $strSign){$ret = false;
try{
$host = ConfigWrapper::load()-services-phpjava-host;if($host != NULL){
define ("JAVA_HOSTS", $host);
}
require_once('java/Java.inc');
java_require(self::CMBJAR);
$pay = new Java('testCdpaySign', self::CERFILE);$result = $pay-checkSign((string)$strText, (string)$strSign);if(java_is_true($result) == 1){
$ret = true;
}catch (\Exception $e) {
Logger::debug("_checkSign = " . $e-getMessage());}
return $ret;
java调用php,php如何获取参数
java 里面有一个URL对象,比如:
在php里面获取参数:
echo $_GET['id'];
这样就获取了
java能远程引用php文件吗?
理论上是可行的.因为php底层是用C封装的,Java有JNI,有RIM,为什么不可以?,但是具体操作起来就比较困难了.如果只是调用php的结果的话,那就直接调用该php文件的url返回结果就行了
如何在java程序中调用php文件
public?String?execPHP(String?scriptName,?String?param)?{
?StringBuilder?output?=?new?StringBuilder();
?BufferedReader?input?=?null;
?String?phpPath?=?"D:/xampp/php/php.exe";
?try?{
??String?line;
??Process?p?=?Runtime.getRuntime().exec(phpPath?+?"?"?+scriptName?+?"?"?+?param);
??input?=?new?BufferedReader(new?InputStreamReader(p.getInputStream()));
??while?((line?=?input.readLine())?!=?null)?{
???output.append(line);
//???p.destroy();//根据系统不同可能需要
??}
??p.destroy();
?}?catch?(Exception?err)?{
??err.printStackTrace();
?}finally{
??if(input?!=?null){
???try?{
???input.close();
???}?catch?(IOException?e)?{
???e.printStackTrace();
???}
?}
?return?output.toString();
//调用php算法
conclusion?=?runPHP.execPHP(ALGORITHM_RESIDUES_URL,imageResiduesId);
//php接收
$id?=?$argv[1];
因为此方法是java开进程直接调用php,所以呢是以内存方式传参
以上就是日讯小常识小编为大家整理的java直接调用php文件,php相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!
