Discuz教程网

PHP调用java类的两种方法

[复制链接]
authicon dly 发表于 2011-4-2 18:59:54 | 显示全部楼层 |阅读模式
Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用。在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现。下面我们来比较一下这两种方法各自的特点。
1.php的Java模块
php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:

  1. <?php
  2. $system=new Java("java.lang.System");
  3. print "Java version=".$system->getProperty("java.version")." <br>\n";
  4. ?>
复制代码

使用这种方法的优点是比较方便,只要用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进程僵死。见http://www.php.net/bugs.php?id=6122
由于这些原因,php的Java模块一直无法应用到实际的的软件系统中。 2.minij2ee应用服务器SJOP协议实现
在介绍minij2ee应用服务器SJOP协议实现之前,先简单介绍一下minij2ee应用服务器。minij2ee应用服务器是第一款支持php的J2EE应用服务器产品,使php能够用于开发企业级应用系统。SJOP全称是Sample Java ORB Protocol(简单Java对象请求代理协议),是一种简单高效的对象请求代理协议。比如:


  1. <?php
  2. $conn=minij2ee_fetch_connection();
  3. print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty","java.lang.String","java.version")." <br>\n";
  4. ?>
  5. minij2ee应用服务器实现SJOP协议的主要目的是使php中能够访问EJB企业级组件,因此minij2ee提供了一个EJB-PHP编译器,可以把EJB组件编译成php的类,使php程序中能够方便的调用EJB组件,例如:
  6. <?php
  7. require("Cart.php"); file://Cart.php是编译Cart EJB后生成的Cart EJB的php类定义。
  8. $home=new CartHome(); file://创建EJB的Home接口。
  9. $objref=$home->create($cart_name); file://创建Cart EJB。
  10. $cart=new Cart($objref);
  11. $cart->add("some goods"); file://向购物车中添加一个物品。
  12. ?>
复制代码

使用minij2ee应用服务器的php支持,就可以开发出基于php和J2EE技术的,面向对象的,稳定高效的企业级应用系统。关于更详细的PHP-J2EE技术的介绍,请访问http://www.minij2ee.com/document/document_index_6_0.html





上一篇:PHP作WAP开发时遇到的问题
下一篇:在网页中使用个性鼠标指针
authicon 我要快乐13 发表于 2011-5-3 10:52:15 | 显示全部楼层
看帖子的都发表一下看法











authicon 82xiaochong911 发表于 2011-5-7 12:59:41 | 显示全部楼层
万分感谢楼主
authicon nmzc 发表于 2011-5-15 01:59:35 | 显示全部楼层
这个还是不错的!
authicon 福倒菜菜子 发表于 2011-5-15 23:00:03 | 显示全部楼层
有意思~顶顶 ,继续顶顶。继续顶哦
authicon 夕梨二世 发表于 2011-5-20 10:59:43 | 显示全部楼层
我回不回呢 考虑再三 还是不回了吧 ^_^
authicon 21585151 发表于 2011-5-22 22:59:52 | 显示全部楼层
我回不回呢 考虑再三 还是不回了吧 ^_^
authicon qqoxygen 发表于 2011-5-25 08:59:45 | 显示全部楼层
继续来索要
authicon 蓝天blue 发表于 2011-5-27 21:59:58 | 显示全部楼层
很好的,我喜欢
authicon 婷婷爱牛牛 发表于 2011-6-16 12:59:44 | 显示全部楼层
楼主真强大
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 22:01

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表