比较两种php调用Java的方法
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 Java说话功能壮大,是以在良多情形下在php中来挪用Java的功能将十分有用。在php中挪用Java说话有两种体例,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用处事器供给的SJOP和谈实现。下面
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
Java说话功能壮大,是以在良多情形下在php中来挪用Java的功能将十分有用。在php中挪用Java说话有两种体例,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用处事器供给的SJOP和谈实现。下面我们来斗劲一下这两种体例各自的特点。
1.php的Java模块
php发布版中包含一个Java扩展模块,可以用来挪用Java对象,例如:
$system=new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")。"
\n";
?>
使用这种体例的利益是斗劲便利,只要用new Java()来建树一个Java对象,就可以同php类一样来挪用Java对象。可是这种体例也有以下较着的错误谬误:
1.因为php的Java模块按照php的数据类型选择最适合的Java体例,是以无法挪用Java过载的函数。
2.php的Java模块将在当前Web Server的历程中载入JVM(Java虚拟机),是以系统开销极大,影响Web Server历程的执行效率。
3.在某些操作系统和Web Server情形中,php的Java模块将使Web Server历程僵死。
因为这些原因,php的Java模块一向无法应用到现实的的软件系统中。
2.minij2ee应用处事器SJOP和谈实现
在介绍minij2ee应用处事器SJOP和谈实现之前,先简单介绍一下minij2ee应用处事器。minij2ee应用处事器是第一款撑持php的J2EE应用处事器产物,使php能够用于开发企业级应用系统。SJOP全称是Sample Java ORB Protocol(简单Java对象请求代办代庖和谈),是一种简单高效的对象请求代办代庖和谈。好比:
$conn=minij2ee_fetch_connection();
print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty","java.lang.String","java.version")。"
\n";
?>
minij2ee应用处事器实现SJOP和谈的首要目的是使php中能够访谒EJB企业级组件,是以minij2ee供给了一个EJB-PHP编译器,可以把EJB组件编译成php的类,使php轨范中能够便利的挪用EJB组件,例如:
require("Cart.php"); file://Cart.php是编译Cart EJB后生成的Cart EJB的php类界说。
$home=new CartHome(); file://建树EJB的Home接口。
$objref=$home->create($cart_name); file://建树Cart EJB.
$cart=new Cart($objref);
$cart->add("some goods"); file://向购物车中添加一个物品。
?>
使用minij2ee应用处事器的php撑持,就可以开发出基于php和J2EE手艺的,面向对象的,不变高效的企业级应用系统。