日期:2014-05-17  浏览次数:20392 次

php与java的结合
最近自己所在的小城市卷起了电子商务热潮,做电子商务的网站公司越来越多,基本都是php+java的模式。之前一直用JAVA做开发,突发奇想也想去了解下怎么实现php与java的结合

查了下网上的资料,一般实现的方式有3种:WebService(SOAP)、Quercus以及php-java桥

自己在这几天尝试了前面2种方式。顺便记录一下过程

一.WebService(SOAP)
1.首先当然是发布一个WebService的服务啦
还是以之前的数字计算为例
package rong.service;

public class CalculateService {

public in plus(int a) {
  return a+1;
}
}

2.发布aar到Tomcat的axis2 (具体方法可参考我的andorid连接WebService)
3.就是通过php访问啦(先确保php.ini设置好php-soap)
<?php
$wsdl="http://localhost:8080/axis2/service/CalculateService";
$client=new SoapClient($wsdl);

//设置参数
$params=array("param0"=>"1");
//打印结果
echo $response->return;
?>


二、第二种方式Quercus

1.用Quercus其实只要去下载一个resin文件,因为里面已经包含Quercus
在Webapps的ROOT里直接放php文件,可以直接调用JAVA类
比如:
<?php
import rong.service.*;
$javaObj = new CalculateService();
echo $javaObj->plus(1);
?>

2.要在Tomcat里运行php也可以,http://quercus.caucho.com/  下载Quercus.war 文件,扔到Tomcat去,然后接下来就和上面的方法一样了。war里有运行php需要的几个jar文件。

小结一下:
根据查阅的资料,WebService一般来说性能相对较差,因为要做跨平台,XML需要DOM解析,比较耗占内存。用网友的话来说就是:相对简单,HTTP协议穿透能力强,当前非常流行。但是缺点是慢

而Quercus的话速度不错啊,网上有测试Quercus执行php比原先快4倍左右,毕竟是扔到Servlet了,就是第一次执行的时候交满,后来就好了。缺点是会占虚拟机资源。


写的不对之处还请网友指正