在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发,第 1 部分: 设置 Java 环境

在 AIX® 上开发一个 Java™ 应用程序,并了解如何通过使用 PHP 接口扩展该应用程序以查看基础 Java 代码。在 AIX 中可以开发使用 Java 和 PHP 技术的应用程序。在获得使用 PHP 作为基于 Web 的接口平台的好处的同时,您可以使用 Java 代码作为核心逻辑(或者重新部署现有的基于 Java 的应用程序)。本文是系列文章的第 1 部分,研究了 AIX 中 Java 编程语言和 PHP 集成方法的基础,提供了使用这种结构的示例应用程序的简要概述,然后介绍了在安装 Java 编程语言和 Apache Tomcat 以开发应用程序之前所需掌握的一些核心内容。

Doug Monroe (monroe@sqnt.com), 系统管理咨询师, MichaelDKelly.com

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



Martin Brown (mc@mcslp.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 及其他站点的博客。您可以通过他的网站与他联系。



2007 年 7 月 12 日

引言

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 接口

同时使用 PHP 和 Java 技术

对于企业而言,在为应用程序开发新的接口的过程中,最常见的问题之一是如何设计解决方案。随着向支持 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 中看到这个基本调查类的结构。

图 1. 问卷调查应用程序的核心类
问卷调查应用程序的核心类

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

图 2. 将问卷调查应用程序公开为基于 Java 的 Web 服务
将问卷调查应用程序公开为基于 Java 的 Web 服务

因为您可能希望能够对结果信息进行存储,所以需要构建到 DB2® 数据库的接口并对基本的 Survey 类进行扩展,以便能够将接收到的响应写入到数据库中。

要提供针对该系统的 PHP 接口,可以在 Java 端对应用程序进行重新调整,使其作为一项 Web 服务,然后您可以从 PHP 应用程序中对其进行访问,以提供可供选择的接口。最后一项工作是,使用 PHP Java Bridge 重新部署该应用程序以实现系统性能的最大化。

要完成前两个步骤,即开发核心应用程序然后将该应用程序部署为 Java Servlet,您需要安装 Java 编程语言和 Apache Tomcat(一种 Java Servlet 部署环境)。让我们首先来安装和设置 Java 编程语言。

安装 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 位硬件上更高效地运行。可以按照下列步骤进行安装:

  1. 下载 Java5_64.sdk.tar.gz 文件到您的系统。
  2. 使用 gunzip -c Java5_64.sdk.tar.gz | tar -xvf - 对 SDK 进行解压缩。
  3. root 用户的身份,使用以下的命令行安装 SDK: installp -a -d Java5_64.sdk all

或者通过 SMIT:

  1. 运行 smitt install
  2. 选择 Install and Update Software
  3. 选择 Install Software
  4. 指定包含映像的文件的全路径(例如,/usr/local/src/Java4_64.sdk)。
  5. 单击 OK
  6. 单击 OK 然后安装 SDK。

安装 Tomcat

Apache Tomcat 提供了一个 JSP 部署平台。您可以通过它来部署使用 Web 接口或支持 Web 服务应用程序部署的 Java 应用程序。在本系列文章中,您将 Java 技术用作 Java 服务平台,稍后将其作为 Java 和 PHP 交叉平台开发的解决方案。

Tomcat 可能是最容易安装和部署的系统组件。作为一个本地 Java 应用程序,在安装了 Java 应用程序之后,安装和设置 Tomcat 都是非常简单的。

按照以下步骤安装 Tomcat:

  1. 下载最新的 Tomcat 包(请参见参考资料)。正如本文所述,V6.0.10 是 Apache Tomcat 最近的稳定发行版。
  2. 使用 targunzipunzip 解压缩 Tomcat 包: $ gunzip -c apache-tomcat-6.0.10.tar.gz|tar xvf -
  3. 将解压缩得到的目录移动到您希望安装 Tomcat 的位置,但请不要对所创建的目录进行重命名。例如: $ mv apache-tomcat-6.0.10 /usr/local
  4. 在真实的目录和您希望使用的名称之间创建一个符号链接。这使得可以在需要的时候,更方便地升级到更新的 Tomcat 版本: $ ln -s /usr/local/apache-tomcat-6.0.10 /usr/local/tomcat

因为 Tomcat 是一个 Java 应用程序,所以无需遵循特殊的安装或者构建方法。您现在应该准备好了安装并启动 Tomcat。

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 配置

Tomcat 中大量的选项使人眼花缭乱,这些选项用于配置各种功能和选项。对于标准安装而言,通常大多数选项不需要您去操心。

但是可能需要对很多关键的元素进行配置。在缺省情况下,Web 服务器通常运行于 TCP/IP 的 80 端口,为了避免与其产生冲突,Tomcat 在端口 8080 上运行,但是在某些服务器上,可能已经将其配置给另一个应用程序使用,如 Web 代理。

通过编辑 conf/server.xml 文件,您可以改变 Tomcat 所侦听的缺省端口。您需要在 Catalina 服务里找到“Connector”块,它通常位于该文件开头的 50 行中。您可以参见清单 1 中的示例。

清单 1. Connector 块
<Service name="Catalina">

    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               maxThreads="150" connectionTimeout="20000"
               redirectPort="8443" />

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

清单 2. 更改端口规范
<!-- Define a SSL HTTP/1.1 Connector on port 8443
     This connector uses the JSSE configuration, when using APR, the
     connector should be using the OpenSSL style configuration
     described in the APR documentation -->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
-->

如果您希望服务器特定主机上的服务能够支持多个网络接口或地址,那么您还必须修改主机名规范。需要在两个位置对其进行设置,一处是在 Engine 标记中,而另一处是在特定的 Host 标记中,如清单 3 所示。

清单 3. 修改主机名规范
<Engine name="Catalina" defaultHost="localhost">

...

      <!-- Define the default virtual host
           Note: XML Schema validation will not work with Xerces 2.2.
       -->
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

您必须更改 defaultHost,然后更改相应的名称属性。

在配置中,您需要检查的另一个文件是 conf/web.xml 文件。您暂时不需要编辑这个文件,但需要熟悉其中的内容,因为在 Tomcat 服务器中设置附加的应用程序时必须编辑这个文件。

启动 Tomcat

在安装和配置了 Tomcat 之后,您可以启动 Tomcat 服务器。首先,确保将 JAVA_HOME 环境变量设置为 Java 环境的正确安装位置。如果您已经安装了 Java5_64,那么该安装位于 /usr/java5_64(请参见清单 4)。

清单 4. Java 安装位置
$ JAVA_HOME=/usr/java5_64
$ export JAVA_HOME

您可能还希望在主要的 PATH 中显式地添加 Java 执行路径,如清单 5 所示。

清单 5. 将 Java 应用程序添加到 PATH
$ PATH=$JAVA_HOME/bin:$JAVA_HOME/rje/bin:$PATH
$ export PATH

另外,您还可以在一个环境变量中设置 Tomcat 安装位置的路径,以便更容易定位(请参见清单 6)。

清单 6. 设置 Tomcat 路径
$ CATALINA_HOME=/usr/local/tomcat
$ export CATALINE_HOME

现在,您应该能够使用所提供的 Shell 脚本来启动 Tomcat 了。启动脚本将显示配置信息(请参见清单 7)。

清单 7. Tomcat 启动脚本
$ $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 中显示了一个输出示例。

清单 8. Catalina.out 日志
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 所示类似的窗口。

图 3. 正在运行的 Tomcat 安装
正在运行的 Tomcat 安装

总结

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

参考资料

学习

获得产品和技术

  • IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。
  • Tomcat:下载最新的包。
  • Java 5 64-bit SDK:要下载这个包,您需要进行注册,但注册是免费的。
  • Mozilla:可以从 IBM 下载用于 AIX 的 Mozilla Web 浏览器。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX, Open source
ArticleID=239929
ArticleTitle=在 AIX Version 5.3 中使用 Java 和 PHP 技术进行开发,第 1 部分: 设置 Java 环境
publish-date=07122007