比较两种php调用Java对象的方法

原创 2001年08月16日 19:37:00

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用。在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的SJOP协议实现。下面我们来比较一下这两种方法各自的特点。
1.php的Java模块
php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:
<?php
$system=new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")." <br>/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进程僵死。见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对象请求代理协议),是一种简单高效的对象请求代理协议。比如:
<?php
$conn=minij2ee_fetch_connection();
print "Java version=".minij2ee_callstatic_javaobj($conn,"java.lang.System","getProperty","java.lang.String","java.version")." <br>/n";
?>
minij2ee应用服务器实现SJOP协议的主要目的是使php中能够访问EJB企业级组件,因此minij2ee提供了一个EJB-PHP编译器,可以把EJB组件编译成php的类,使php程序中能够方便的调用EJB组件,例如:
<?php
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技术的,面向对象的,稳定高效的企业级应用系统。关于更详细的PHP-J2EE技术的介绍,请访问http://www.minij2ee.com/document/document_index_6_0.html

 

Java中两个对象的比较 equals()方法和==号的区别

在Java中,时不时我们会把两个对象进行,然而得到的结果却不是我们想的结果,这是怎么回事呢? 一、两种形式的比较:比较时,我们要弄清楚是哪一种比较。       1.值类型比较       即内容...
  • BlueSky_USC
  • BlueSky_USC
  • 2016年07月07日 10:28
  • 10583

Java中对两个对象进行比较大小

在Java中要想对两个对象进行比较大小,需要实现Comparable接口或Comparator接口。String类型的值之所以可以比较大小(汉字根据ANSI值的大小进行比较),是因为String类实现...
  • fmwind
  • fmwind
  • 2016年08月11日 16:29
  • 5086

TreeSet集合排序两种实现方式Comparable和Comparator比较

import java.util.Comparator; import java.util.Iterator; import java.util.TreeSet; /** * TreeSet集合排...
  • Geek_ymv
  • Geek_ymv
  • 2014年07月26日 16:56
  • 2291

java克隆对象(两种方法)

  • 2017年09月17日 10:50
  • 1KB
  • 下载

xml和java对象互相转换的两种方法

  • 2014年05月01日 13:42
  • 3.83MB
  • 下载

有关PHP程序调用java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用。在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的...
  • benpaobagzb
  • benpaobagzb
  • 2015年08月28日 20:16
  • 1334

PHP中调用Java类的两种方法

Java语言功能强大,因此在许多情况下在php中来调用Java的功能将十分有用。在php中调用Java语言有两种方法,一种是使用php中的Java扩展模块,另一种是使用minij2ee应用服务器提供的...
  • flanet
  • flanet
  • 2012年07月24日 12:54
  • 560

PHP面向对象中类方法的两种类型:1、基本类型

在PHP的世界里面,数据类型决定了代码的处理数据的方式。例如:字符串类型显示字符串数据并用字符串函数来处理这些数据;数学表达式中使用整形,测试表达式中使用布尔型,等等。这些都称为“基本数据类型”; ...
  • baidu_30000217
  • baidu_30000217
  • 2015年11月05日 17:04
  • 323

往TreeMap和TreeSet里添加自定义对象的两种比较方法

这个问题之前有点乱,下面我们详细来说一下首先我们先从set说起,set集合的特点就是不可以存重复的数据,那么我们只需要equals方法就可以,那么需要在公司类中重写equals方法。如果补充协议equ...
  • melissa_heixiu
  • melissa_heixiu
  • 2016年08月19日 21:18
  • 477

面向对象建模与数据库建模两种分析设计方法的比较

原文地址:http://www.jdon.com/mda/oo_relation.html  我们知道:一个软件从无到有需要经过如下几个阶段:分析、设计、编程、调试、部署和运行。...
  • dafeng168
  • dafeng168
  • 2011年07月28日 10:55
  • 349
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:比较两种php调用Java对象的方法
举报原因:
原因补充:

(最多只允许输入30个字)