在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发,第 1 部...1

来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:04:10
在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发,第 1 部分: 设置 Java 环境

文档选项

将此页作为电子邮件发送

级别: 中级
Doug Monroe, 系统管理咨询师, MichaelDKelly.com
Martin Brown (mc@mcslp.com), 自由撰稿人, 顾问
2007 年 7 月 12 日
在 AIX® 上开发一个 Java™ 应用程序,并了解如何通过使用 PHP 接口扩展该应用程序以查看基础 Java 代码。在 AIX 中可以开发使用 Java 和 PHP 技术的应用程序。在获得使用 PHP 作为基于 Web 的接口平台的好处的同时,您可以使用 Java 代码作为核心逻辑(或者重新部署现有的基于 Java 的应用程序)。本文是系列文章的第 1 部分,研究了 AIX 中 Java 编程语言和 PHP 集成方法的基础,提供了使用这种结构的示例应用程序的简要概述,然后介绍了在安装 Java 编程语言和 Apache Tomcat 以开发应用程序之前所需掌握的一些核心内容。
PHP 是一种非常优秀的 Web 开发语言,而在商业应用程序开发方面,Java™ 编程语言十分流行。因此,为了在 AIX® Version 5.3 操作系统上充分利用它们的优势,专门开发了 PHP Java Bridge。本系列文章的目的是使得 AIX 5.3 开发人员能够更快地在 Web 应用程序的开发中集成 PHP 和 Java 技术。
为了说明这一点,您将按照典型的开发过程来构建一个简单的问卷调查应用程序,具体内容包括:
开发主要的 Java 应用程序 通过 Servlet 将 Java 应用程序公开为基于 Java 的 Web 应用程序 添加在数据库中存储信息的支持 将原始应用程序公开为 Web 服务,并为该应用程序提供 PHP 接口 使用专门的 PHP Java Bridge 重新开发 PHP 接口
对于企业而言,在为应用程序开发新的接口的过程中,最常见的问题之一是如何设计解决方案。随着向支持 Web 的应用程序的发展,通常需要为使用现有的语言和框架的现有应用程序开发基于 Web 的包装器。
对于某些环境,这可能会导致一些问题,因为 Web 应用程序的部署情况可能基于完全不同的技术,并且在许多情况下,某个特定环境的能力和优势始终不能得到最大程度利用。
甚至在开发新的应用程序时,也可能会出现同样的问题,即 Web 开发专家习惯于某种环境,如 PHP,而您的业务应用程序逻辑专家则对 Java 技术有着丰富的经验。有些时候,您可能希望充分利用不同环境所提供的灵活性。PHP 允许对 Web 应用程序进行快速的应用程序原型设计,并且允许根据需要将 HTML 和嵌入的 PHP 命令混合在一起,这使得 Web 接口的开发变得非常容易。
尽管 Java 环境可以使用 Java Server Pages (JSP) 和本地解决方案(如用于 HTML 对象部署的 Struts)进行 Web 部署,但是它通常更适合用于大型应用程序中的核心应用程序逻辑。Java 环境具有强类型和标准化的特点,所以它更适合为复杂的业务应用程序开发解决方案。
关键是使用一种合适的解决方案,而该方案使您能够为应用程序的不同部分(后端逻辑和前端接口)同时使用这两种解决方案,并且使用 Java 和 PHP 技术的接口在两种系统之间进行信息交换。
Java 和 PHP 技术之间并没有直接的关联,它们是两种不同的技术,使用了完全不同的逻辑、二进制代码和部署环境。然而,有一种方法可以使得两种系统之间能够相互通信,那就是使用面向服务的体系结构(SOA)和 Web 服务来进行信息交换。在这个示例场景中,您将通过一系列 Web 服务来公开 Java 应用程序。然后,PHP 应用程序将充当 Web 服务客户端,以便与 Java Web 服务接口进行通信。
另一种方法是使用 PHP Java Bridge,它提供了一个直接对象接口,该接口允许您在同一个应用程序中直接使用 Java 和 PHP 代码。
在本系列文章和教程中,将详细介绍如何开发 Java 应用程序,并使用基础 Java 代码的 PHP 接口对该应用程序进行扩展。
在本系列文章的学习过程中,您将构建一个简单的问卷调查系统,该系统提供了一系列问题,并收集对这些问题的回答,然后在这些回答的基础上提供统计分析。
在 Java 代码中使用一个用于调查的基类构建应用程序逻辑,以进行问卷调查。您还将构建一个单独的基类(保存问题的核心数据),通过对这个类进行扩展,您可以得到一些其他类以支持不同的响应类型(多项选择、文本条目、评估等等)。您可以在图 1 中看到这个基本调查类的结构。

要通过 Web 接口公开这个应用程序,您需要构建一个 Java Servlet,它对原始问题类进行了扩展,支持以 HTML 的形式输出这些问题,并接收响应。该元素的结构如图 2 所示。

因为您可能希望能够对结果信息进行存储,所以需要构建到 DB2® 数据库的接口并对基本的 Survey 类进行扩展,以便能够将接收到的响应写入到数据库中。
要提供针对该系统的 PHP 接口,可以在 Java 端对应用程序进行重新调整,使其作为一项 Web 服务,然后您可以从 PHP 应用程序中对其进行访问,以提供可供选择的接口。最后一项工作是,使用 PHP Java Bridge 重新部署该应用程序以实现系统性能的最大化。
要完成前两个步骤,即开发核心应用程序然后将该应用程序部署为 Java Servlet,您需要安装 Java 编程语言和 Apache Tomcat(一种 Java Servlet 部署环境)。让我们首先来安装和设置 Java 编程语言。
您需要安装 Java Software Development Kit (SDK) Version 5 或更高版本,并且需要的是开发环境而不是运行时环境,因为您将需要把 Java 源代码编译成示例应用程序中的核心应用程序对象所需的类。
AIX Version 5.3 分发版中提供了 32 位的 Java V1.4 SDK,而您的系统中可能已经安装了该软件,因为它是 WebSM 所必需的。可以通过运行 lslpp -L Java14.sdk 来进行验证。IBM developerWorks 站点提供了 64 位的 Java 5 SDK(请参见参考资料)。除了使用更新的 Java 发行版之外,64 位应用程序能够在使用 64 位内核的 64 位硬件上更高效地运行。可以按照下列步骤进行安装:
下载 Java5_64.sdk.tar.gz 文件到您的系统。 使用 gunzip -c Java5_64.sdk.tar.gz | tar -xvf - 对 SDK 进行解压缩。 以 root 用户的身份,使用以下的命令行安装 SDK: installp -a -d Java5_64.sdk all。
或者通过 SMIT:
运行 smitt install。 选择 Install and Update Software。 选择 Install Software。 指定包含映像的文件的全路径(例如,/usr/local/src/Java4_64.sdk)。 单击 OK。 单击 OK 然后安装 SDK。
Apache Tomcat 提供了一个 JSP 部署平台。您可以通过它来部署使用 Web 接口或支持 Web 服务应用程序部署的 Java 应用程序。在本系列文章中,您将 Java 技术用作 Java 服务平台,稍后将其作为 Java 和 PHP 交叉平台开发的解决方案。
Tomcat 可能是最容易安装和部署的系统组件。作为一个本地 Java 应用程序,在安装了 Java 应用程序之后,安装和设置 Tomcat 都是非常简单的。
按照以下步骤安装 Tomcat:
下载最新的 Tomcat 包(请参见参考资料)。正如本文所述,V6.0.10 是 Apache Tomcat 最近的稳定发行版。 使用 tar 和 gunzip 或 unzip 解压缩 Tomcat 包: $ gunzip -c apache-tomcat-6.0.10.tar.gz|tar xvf -。 将解压缩得到的目录移动到您希望安装 Tomcat 的位置,但请不要对所创建的目录进行重命名。例如: $ mv apache-tomcat-6.0.10 /usr/local。 在真实的目录和您希望使用的名称之间创建一个符号链接。这使得可以在需要的时候,更方便地升级到更新的 Tomcat 版本: $ ln -s /usr/local/apache-tomcat-6.0.10 /usr/local/tomcat。
因为 Tomcat 是一个 Java 应用程序,所以无需遵循特殊的安装或者构建方法。您现在应该准备好了安装并启动 Tomcat。
在第一次启动 Tomcat 之前,您应该再次检查 Tomcat 系统的配置,以确保它与您的环境是匹配的。在检查配置之前,有必要查看一下 Tomcat 安装的基本目录结构:
LICENSE NOTICE RELEASE-NOTES RUNNING.txt bin/ conf/ lib/ logs/ temp/ webapps/ work/
Tomcat 安装中的关键部分如下所述:
bin 目录包含主要的脚本以及控制和运行 Tomcat 应用程序的应用程序。该目录中包括一些 Shell 脚本、本地 Windows® 应用程序和 Windows 批处理文件。您应该对该目录中的 Shell 脚本运行 chmod 以确保您可以启动、停止以及控制 Tomcat 的安装: $ chmod ugo+x bin/*.sh。 conf 目录包含一些保存了 Tomcat 配置信息的文件。在最初设置了 Tomcat 之后,几乎不用再改变这些配置信息,因为可以通过 Tomcat 接口直接完成大多数安装和部署工作。 lib 目录中包含一些库和 Java 代码文件,而 Java 系统正是由这些内容构成的。 在安装 Tomcat 服务器时将自动创建 logs 目录,其中包含日志文件(包括错误日志)。 temp 目录也是在安装 Tomcat 服务器时自动创建的,其中包含各种临时文件。 webapps 目录是安装您的 Web 应用程序组件的地方。您可以安装 JAR 文件、WAR 文件和组成您的应用程序的 JSP 文件。在缺省情况下,Tomcat 包括文档、示例和用于控制 webapps 目录中 Tomcat 安装的管理应用程序。 work 目录包含正在运行的应用程序的工作组件,该目录是 Tomcat 在运行时自动创建的。
现在,让我们来检查一下 Tomcat 的配置,因为您可能需要更新其中的部分配置,以适应您的环境。
Tomcat 中大量的选项使人眼花缭乱,这些选项用于配置各种功能和选项。对于标准安装而言,通常大多数选项不需要您去操心。
但是可能需要对很多关键的元素进行配置。在缺省情况下,Web 服务器通常运行于 TCP/IP 的 80 端口,为了避免与其产生冲突,Tomcat 在端口 8080 上运行,但是在某些服务器上,可能已经将其配置给另一个应用程序使用,如 Web 代理。
通过编辑 conf/server.xml 文件,您可以改变 Tomcat 所侦听的缺省端口。您需要在 Catalina 服务里找到“Connector”块,它通常位于该文件开头的 50 行中。您可以参见清单 1 中的示例。

将端口属性值更改为您希望使用的端口。如果需要,您可能还希望调整 redirectPort 属性,其中包含了安全套接字层 (SSL) 连接所使用的端口。如果您更改了这个值,那么请确保同时更改 SSL 连接的端口规范,如清单 2 所示。

如果您希望服务器特定主机上的服务能够支持多个网络接口或地址,那么您还必须修改主机名规范。需要在两个位置对其进行设置,一处是在 Engine 标记中,而另一处是在特定的 Host 标记中,如清单 3 所示。
...
您必须更改 defaultHost,然后更改相应的名称属性。
在配置中,您需要检查的另一个文件是 conf/web.xml 文件。您暂时不需要编辑这个文件,但需要熟悉其中的内容,因为在 Tomcat 服务器中设置附加的应用程序时必须编辑这个文件。
在安装和配置了 Tomcat 之后,您可以启动 Tomcat 服务器。首先,确保将 JAVA_HOME 环境变量设置为 Java 环境的正确安装位置。如果您已经安装了 Java5_64,那么该安装位于 /usr/java5_64(请参见清单 4)。
$ JAVA_HOME=/usr/java5_64 $ export JAVA_HOME
您可能还希望在主要的 PATH 中显式地添加 Java 执行路径,如清单 5 所示。
$ PATH=$JAVA_HOME/bin:$JAVA_HOME/rje/bin:$PATH $ export PATH
另外,您还可以在一个环境变量中设置 Tomcat 安装位置的路径,以便更容易定位(请参见清单 6)。
$ CATALINA_HOME=/usr/local/tomcat $ export CATALINE_HOME
现在,您应该能够使用所提供的 Shell 脚本来启动 Tomcat 了。启动脚本将显示配置信息(请参见清单 7)。
$ $CATALINA_HOME/bin/startup.sh Using CATALINA_BASE: /Data/Incoming/apache-tomcat-6.0.10 Using CATALINA_HOME: /Data/Incoming/apache-tomcat-6.0.10 Using CATALINA_TMPDIR: /Data/Incoming/apache-tomcat-6.0.10/temp Using JRE_HOME: /usr/java5_64
如果其中报告了任何错误,那么您可能希望在 logs/catalina.out 中查看更详细的日志信息。清单 8 中显示了一个输出示例。
Mar 31, 2007 8:51:11 AM org.apache.catalina.core.AprLifecycleListener init INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/lib:/u sr/local/apr/lib:.:/usr/java5/extensions:/usr/java5/lib Mar 31, 2007 8:51:13 AM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Mar 31, 2007 8:51:13 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 5262 ms Mar 31, 2007 8:51:13 AM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Mar 31, 2007 8:51:13 AM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.10 Mar 31, 2007 8:51:23 AM org.apache.coyote.http11.Http11Protocol start INFO: Starting Coyote HTTP/1.1 on http-8080 Mar 31, 2007 8:51:23 AM org.apache.jk.common.ChannelSocket init INFO: JK: ajp13 listening on /0.0.0.0:8009 Mar 31, 2007 8:51:23 AM org.apache.jk.server.JkMain start INFO: Jk running ID=0 time=0/34 config=null Mar 31, 2007 8:51:23 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 10466 ms
其中应该包含有关出错情况的更详细信息。最常见的问题是与现有的服务发生端口冲突或者缺少 Java 安装。
要对 Tomcat 安装进行测试,一种比较简单的方法是在其启动之后访问 Tomcat 服务器页面。如果您没有更改端口号,并且您的服务器上安装了浏览器,那么可以使用浏览器进行访问: http://localhost:8080/。
如果 Tomcat 服务器位于另一台计算机或者您更改了端口号,那么可以替换上述示例中的 localhost 和 8080。例如: http://192.168.0.170:8080/。
您应该得到与图 3 所示类似的窗口。

在本文中,您简要地了解了一些与在 AIX 中使用 PHP 和 Java 技术进行开发和部署的原因相关的问题,以及对这两种系统进行集成的一些可用的解决方案。然后介绍了一个基本的应用程序,其中使用了 Java 后端和类,以便支持使用 PHP 通过 Web 接口进行扩展的不同操作。在本系列文章的下一部分中,您将使用 Java 技术开发核心应用程序逻辑。


请 Digg 这个故事

发布到 del.icio.u

Slashdot 一下!

学习
您可以参阅本文在 developerWorks 全球站点上的英文原文 。
“在 Apache Geronimo 中运行 PHP 应用程序”(developerWorks,2006 年 2 月):这个教程提供了关于使用 PHP 和 Java 技术进行开发的基本信息。
PHP Java Bridge:有关 PHP Java Bridge 的更多信息,请查看 sourceforge.net。
2006 年 AIX 专区最受欢迎的文章:查看您的同事所感兴趣的 AIX 和 UNIX 文章。
查看 Martin Brown 撰写的其他文章和教程:Across developerWorks and IBM
查看 Doug Monroe 撰写的其他文章和教程:Across developerWorks and IBM
AIX and UNIX® :“AIX and UNIX developerWorks”专区提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
AIX 5L™ Wiki:AIX 相关技术信息的协作环境。
按主题搜索“AIX and UNIX”库:系统管理应用程序开发性能移植安全性提示工具和实用程序Java 技术Linux® 开放源代码
Safari 书店:访问此电子参考资料库可查找特定的技术资源。
developerWorks 技术事件和网络广播:了解最新的 developerWorks 技术事件和网络广播。
Podcast:收听 Podcast 并与 IBM 技术专家保持同步。
获得产品和技术
IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。
Tomcat:下载最新的包。
Java 5 64-bit SDK:要下载这个包,您需要进行注册,但注册是免费的。
Mozilla:可以从 IBM 下载用于 AIX 的 Mozilla Web 浏览器。
讨论
参与developerWorks Blog,从而加入到 developerWorks 社区中来。
参与“AIX and UNIX”论坛:AIX 5L——技术论坛AIX for Developers 论坛集群系统管理IBM Support Assistant 性能工具——技术虚拟化——技术更多“AIX and UNIX”论坛

 

Doug Monroe 是 DMA Inc. 的一名 UNIX 系统管理咨询师和教员。他拥有俄勒冈州立大学的计算机科学学士学位,自从 1984 年以来一直在支持各种风格的 UNIX。您可以通过monroe@sqnt.com 与他联系。

 

Martin Brown 成为职业作家已经超过 7 个年头。。他所撰写的书籍和文章涵盖了各种各样的主题。他所擅长的领域包括大量开发语言和平台——Perl、Python、Java™、JavaScript、Basic、Pascal、Modula-2、C、C++、Rebol、Gawk、Shellscript、Windows™、Solaris、Linux、BeOS、Mac OS/X 等等——和 Web 编程、系统管理与集成。他是 Microsoft 的主题专家(Subject Matter Expert,SME),并长期为 ServerWatch.com、LinuxToday.com 和 IBM developerWorks 供稿。他也是 Computerworld、The Apple Blog 及其他站点的博客。您可以通过他的网站与他联系。