摘要:WebSphere? sMash 环境支持基于流行的 Web 技术(如 PHP)快速开发交互式 Web 应用程序,允许从 PHP 脚本重用现有的 Java? 资产。本文将介绍 Java Bridge 并说明如何从 PHP 访问 Java 类。
引言
本文说明如何使用 Java Bridge 从 PHP 访问 Java 类。其中将讨论如何调用 Java 方法和访问字段(实例和静态字段)。另外还将讨论异常处理及 PHP 和 Java 之间的类型转换。
ZSL、WebSphere sMash 和 Apache Lucene
有关真实示例,本文逐步说明了使用 PHP 编写的简单搜索引擎的创建工作,此引擎可使用 Apache Lucene 建立文件索引和进行搜索。Apache Lucene 是一个高性能的全功能文本搜索引擎库,完全使用 Java 编写。这是一项适合很多需要全文本搜索的应用程序使用的技术。
ZSL 在其编写的 WebSphere sMash 应用程序中使用 Apache Lucene.ZSL? 希望改进其开发人员之间的信息共享情况。为了解决此问题,他们建立了 Mashup 来对源代码和文档库(PDF、PowerPoint、Word、Excel 和很多其他格式)进行索引。此应用程序提供了从整个企业方便快捷访问代码片段的能力。
在 WebSphere sMash 中创建应用程序
第一步是在 Eclipse 中创建新项目:
1、选择 File -> New -> Project……,并在对话框中展开 Zero 目录。
2、选择 WebSphere sMash PHP Application,并单击 Next,如图 1 中所示。
3、给项目命名(例如 MyJavaProject)并单击 Finish.您的项目现在已创建。
图 1. “创建新的 WebSphere sMash 项目”对话框
创建并调用 Java 对象
接下来,编写创建和调用 Java 对象的 PHP 脚本:
1、右键单击 public 文件夹并选择 New -> File.
2、给文件命名(例如 Java.php)并单击 Finish.
3、在文件中添加以下代码:
$file = new Java("java.io.File", __FILE__, FALSE);
var_dump($file);
var_dump($file->isDirectory());
?>
4、在 Eclipse 中右键单击项目名,并选择 Run As -> WebSphere sMash Application,以运行示例代码。
5、会在 localhost 的端口 8080 启动 Web 服务器。
6、现在可以打开浏览器,指向 http://localhost:8080/Java.php,您将看到以下输出,如图 2 中所示。
图 2. 调用 Java 对象的 Web 浏览器输出
此示例代码显示了使用内置 Java 类的 PHP 脚本。此 Java 类创建 Java 类的实例,并调用最佳匹配构造函数(从脚本传递任何参数)。在此示例中,根目录为 "/" 和 FALSE.脚本将其存储在名为 $file 的 PHP 变量中。脚本然后像处理普通 PHP 对象一样对该对象调用方法,在此示例中我们将其命名为 isDirectory 方法。
此功能非常强大,允许 PHP 脚本访问任何 Java 类。请注意,该 Java 类必须位于应用程序类路径上,java.io.File 是核心 Java 类库的一部分,因此始终可用。