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进程僵死。见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对象请求代理协议),是一种简单高效的对象请求代理协议。比如:
<!---->$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技术的,面向对象的,稳定高效的企业级应用系统。关于更详细的PHP-J2EE技术的介绍,请访问http://www.minij2ee.com/document/document_index_6_0.html。
分享到:
相关推荐
Java和PHP是两种广泛应用的编程语言,它们在不同的场景下各有优势。在某些情况下,我们需要在Java应用和PHP应用之间实现通信,以便于数据交换或服务调用。本篇文章将详细探讨如何通过Java的ServerSocket类来建立一个...
Java 和 PHP 在 Web 开发领域的比较是一个经常被讨论的话题,因为两者都是广泛使用的后端编程语言,各有其优点和适用场景。以下是对标题和描述中提及的几个关键知识点的详细阐述: 1. **语言特性比较**: - PHP 是...
本文将深入探讨一种在Java和PHP中通用的加密算法——DES(Data Encryption Standard),并详细解析其工作原理、应用实例以及跨语言互操作性。 ### 一、DES算法概述 DES是一种对称加密算法,由IBM公司开发,并于...
Java和PHP都是当今Web开发领域的主流语言,它们各自拥有独特的特性和优势,广泛应用于网站构建、后端服务以及大数据处理等场景。这篇文章将深入探讨Java与PHP在Web开发中的技术对比,帮助开发者更好地理解两者之间的...
在AIX 5.3操作系统环境下,开发人员可以利用Java和PHP这两种强大的技术来构建复杂的Web应用程序。本文主要探讨了如何在AIX中整合这两种语言,以实现更高效的开发流程。作者 Doug Monroe 和 Martin Brown 提供了一个...
通过将PHP代码解释/编译为Java,Quercus实现了PHP和Java的紧密集成。使用Quercus的益处包括性能提升、更好的开发体验、更强大的功能、更高的安全性和可扩展性。Quercus简化了数据类型和参数类型的转换,对于数据库...
Java和PHP之间的桥梁, PHP 5.5以上和JDK1.5以上的,实现PHP调用Java的接口!
本资源提供了基于Java和PHP的解决方案,帮助开发者解析和识别UA字符串,从而判断客户端平台及浏览器源程序。 首先,我们来看Java版的实现。Java作为一款广泛应用的编程语言,其强大的库和工具使得处理UA字符串变得...
标题中的“cas实现单点登录,登出(java和php客户端)”指的是使用CAS(Central Authentication Service,中央认证服务)协议来实现在多个应用系统之间的一次登录、全局登出功能。CAS是一个开源项目,旨在为Web应用程序...
本资源提供了一套基于Java和PHP的校园二手物品交易网站设计源码,包含413个文件,其中包括119个CSS样式文件,105个JavaScript脚本文件,68个Java源代码文件,51个PNG图片文件,17个JSP页面文件,14个XML配置文件,11...
本项目探讨了如何使用Java和PHP两种不同的编程语言来实现这样的系统。 首先,让我们从Java J2EE和Struts框架的角度来看。Java J2EE是企业级应用程序开发的平台,它提供了丰富的组件和服务,如Servlet、JSP、EJB等。...
在Web开发领域,Java和PHP都是非常流行的选择,两者各有优势和特点。以下是对这两个语言在Web开发方面的详细比较: 1. **语言特性比较** - PHP是一种解释型的服务器端脚本语言,语法简洁,与C语言相似,学习曲线...
在本文中,我们将深入探讨如何使用Java和PHP两种编程语言实现将图片上传到新浪微博的图床。新浪微博图床是微博平台提供的一种服务,允许开发者将其图片存储在微博的服务器上,以便在微博内容中引用。这不仅可以节省...
Java 和 PHP 是两种广泛用于 Web 开发的编程语言,它们各有优势和特点。在选择适合的 Web 开发技术时,需要考虑多个因素,包括学习曲线、性能、数据库访问、系统设计、跨平台性、开发成本以及安全性。 首先,从语言...
本项目是一个综合性的新冠疫情信息统计与管理系统,采用Java和PHP作为主要开发语言,结合JavaScript、CSS、HTML等前端技术,实现了疫情数据的收集、处理、展示和管理功能。项目包含1653个文件,其中JavaScript文件...
PHP/Java Bridge是一种技术,它允许PHP和Java应用程序之间进行通信和数据交换,极大地扩展了PHP的功能,使得开发者能够利用Java平台的强大功能。这个技术的关键在于它的几个核心组件,其中包括JavaBridge.jar、...
本电商平台项目基于Java和PHP开发,包含3985个文件,包括PNG图片、Java源代码、PHP源代码、JavaScript脚本、GIF动画、Vue组件、LESS样式表、XML配置文件、CSS样式表。系统涵盖了多种商业模式,注重界面美感和用户...
JavaBridge.jar, php-script.jar, php-servlet.jar, 和 script-api.jar 这四个文件是针对在Java环境中运行PHP应用程序的关键组件。这些JAR(Java Archive)文件主要用于在Apache Tomcat服务器上实现PHP与Java的集成...