您可能还没有意识到,Mac OS X - 10.3 版本(更多地被称为 Panther)是一个重要的 Java 开发环境。以前我一直生活在Windows的世界,有时生活在Unix/Linux 世界,直到最近,我才转换到 Mac。或许您和我一样。或许外星人已经绑架了您的朋友并且也使他们转换到了 Mac。
您可能还没有意识到,Mac OS X - 10.3 版本(更多地被称为 Panther)是一个重要的 Java 开发环境。
以前我一直生活在Windows的世界,有时生活在Unix/Linux 世界,直到最近,我才转换到 Mac。或许您和我一样。或许外星人已经绑架了您的朋友并也使他们转换到了Mac。或许您应该加入我们。对于我自己来说,能够使用基于 Unix 的 Mac OS X 进行 WebLogic/J2EE 开发,更是给我提供了另一个同时成为 Java 和 Mac 工程师的理由。
因此,是什么使得 OS X 成为如此重要的 Java 开发环境呢?让我们从这个星球上最好的用户接口开始。加上 Unix 核心的力量和在一个环境中开发的能力,这个环境更近似地模拟了许多企业应用程序的可能部署环境(也就是基于 Unix 的 Solaris、HPUX 以及 Linux)。在它之上使用 BEA WebLogic Server 和 WebLogic Workshop,从而获得一个令人惊讶的易用性、能力和生产力。
本文并不是一个关于 WebLogic Server/WebLogic Workshop,或者 Mac OS X 的教程,而是一个关于这些技术在哪里能满足创建业界空前事物的概述 —— 一个在 Unix 桌面上的完全实现的 J2EE 开发环境。可是我将向您提供基本的指导,说明如何在一个生产性的 WebLogic 和 WebLogic Workshop 开发环境上设置您的 Mac。我自己使用这些指导已经成功地在我的 Power Mac G5 上设置了 WebLogic Server 和 Workshop 并且使用这个环境快速地和成功地创建一个小的 Web 应用程序。这个应用程序可以捕获信息,通过一个页面流(作为一个 FormBean)发送信息,使用一个 Workshop FileControl 向磁盘写入该信息,并且最终将这个功能作为 Web 服务来提供。为了完成这个程序,我使用域配置向导创建了我自己的 Workshop 域。尽管在这个过程中遇到一些问题,但所有这些都能正常工作。我将和您共享其中的一些。
注意这一点很重要,在目前这个时候,Mac OS X 和 Mac JVM 并不是官方的 BEA 支持的平台。您必须在该上下文中使用这个信息。因此,这取决于开发人员社区将它带入到下一个层次 —— 延伸 WebLogic 和 Workshop、报告任何错误、提出建议以及参与其中。
Mac OS X 开发的优点
我并不想在证明 Mac 作为一个开发平台上花费太多的时间,但是我意识到许多人可能没有跟上Mac 最近令人惊异的发展脚步。您或许将 Mac 看作是计算世界的“右脑”,也就是绘画艺术家和其他非技术人群所使用的富有创造性的一面。
Mac OS X 版本提供 Unix 的力量作为 OS 底层的基础,以及可论证的这个星球上最好的 GUI。其他有效地结合 Unix 和 GUI 的桌面 OS 只有 Linux。我们都热爱 Linux,但是从易于使用和整体桌面功能的观点来说,它还不能动摇 Mac 在接口技术和实现方面的领导地位。
但是不要只是听我的一面之辞;甚至是 Java 之父,James Gosling ,都已经全面拥抱 Mac 平台(请参见 www.apple.com/pro/science/gosling/)。根据这篇文章,James 和他的开发团队中的大多数人都喜欢在 Mac 平台上进行开发,因为它融合了 Unix 的力量和可以使用的最好的MMI(人机接口)或者用户体验。也就是说,它提供 Unix 服务器的力量,并且具有 Windows 系统所渴望的易于操作性。
2004 年 3 月的 Java Developer's Journal (Vol. 9, issue 3) 期刊上的一篇文章谈论了在 Mac OS X 上运行 Java 的一些其他的优点(www.sys-con.com/story/?storyid=43949&DE=1 )。
下面是关于为什么 Mac OS X 是一个重要的 WebLogic/WebLogic Workshop 开发环境的一些详细理由。
1. Java 是作为核心系统的一部分提供的(也就是,包括 JDK):Java 被适当地集成到 OS 中,而不是事后的做法。
2. GUI:其他“可选的”桌面所不具备的无比的易用性和卓越的历史。
3. Unix 核心:实用程序和生产力工具都在您的指尖。
- 保持您有价值的 UNIX 技巧,同时利用 WLW 的获取数十倍生产力的能力提高您的生产力:您可以直接从终端窗口发出所有您喜欢的命令(在 Applications/Utilities 文件夹中可以使用)。
- 可靠的 UNIX 发布:在 Mac OS X 上的 Unix 发布是 BSD(Berkeley Software Distribution),而它从 60 年代就已经存在了。
4. 集成进办公环境:与类似 Mac 的 MS Office 套件(用于编写这篇文章)这样的高效工具很好地一起工作,因此当它共享标准文档时,您不会被孤立在您的团队之外。
5. 简单连网:将您的 Mac 接入到您的家庭网络,从而允许您在家中轻松地执行跨平台验证和群集。
现在,让我们继续手边的工作,安装、运行 BEA WebLogic Server 和 WebLogic Workshop,并且进行开发。
安装过程确实和 1-2-3 一样的容易。
1. 下载正确的版本。
2. 运行安装程序。
3. 设定 Mac JVM 版本。
完成这些简单的步骤,您现在就准备好运行 WebLogic Server 和 WebLogic Workshop 了,但是您可能希望稍微改进一下这个环境。
安装
下列说明假设您正在使用 Mac OS X 10.3 并且已经安装 JDK level 1.4.2。您可以通过运行“java -version”进行检查,它应该向您显示版本是 1.4.2_03(针对该文章来说);或者(b)通过导航至 /System/Library/Frameworks/JavaVM.framework/Versions,从那里您应该看到用于 1.2/1.3/1.3.1/1.4.2 的文件夹。如果 1.4.2 不是您看到的作为最新文件夹的版本,确保在继续之前进行升级。
步骤 1:下载安装程序
这个部分比较容易,只要您具有一个高速连接。需要知道的第一件事情是从 BEA 的下载站点(点击这里!)获得WebLogic Server 8.1 SP2 的哪个版本。您的第一个选择是(a)WebLogic Platform 网络安装程序,(b)WebLogic Server 包安装程序,或者(c)邮寄 CD。我使用选项“b”并且选择 IBM AIX(5.1,5.2)选项,它将允许您下载一个称为pj_server812_generic.jar 的 JAR 文件。将该文件保存到您用来存储安装文件的任何文件夹。该文件大小为 221.4 MB。
您所下载的文件是“通用”的版本,它在下载站点上以“.jar”结尾并且被标注为 AIX 版本。注意,这个 WebLogic Server/Workshop 版本并不包括一个 JDK,这与例如像 Windows 的版本不同。我们将使用 Mac OS X 10.3 附带的 JDK 版本(Panther)。关于使用本地 JDK 的更多讨论在“设定 Mac Java 版本”一节。
步骤 2:运行 GUI 安装程序
现在开始安装软件。我将讨论使用 GUI 安装向导,尽管这里有从命令行安装以及执行静默安装的选项。我将不再向您赘述,但是您可以遵循在 edocs.bea.com/wls/docs81/install/instprg.html#1054300 的安装向导中列举的指导。
基本上,您只是运行下列命令就开始运行/安装。向导会带领您经过少数的步骤以完成安装。
java -jar pj_server811_generic.jar
步骤 3:设定 Mac Java 发布
关于您的 Mac JDK 的基本安装的一个说法是:在 JDK 和 OS 之间的集成比任何其他平台都更为紧密。事实上,Mac OS X 具有一个重定向层,使得升级到新的 JDK 对于一般用户来说非常容易,但是对于开发人员来说乍看起来可能有些混淆,例如他们需要知道 JAVA_HOME 在哪里。
如果在完成该“设定”之前,您试图运行 WebLogic Server 或 Workshop,您的服务器将不会启动,因为 Server 和 Workshop 所查看的一些目录不存在,当目录不存在时,它们将导致 Server 和 Workshop 假设您并没有指向一个有效的 JDK 安装。关于 Mac JVM 布局的进一步的背景信息可以从一本著名的书中得到,这本书是 Mac OS X for Java Geeks by Will Iverson (O'Reilly; 2003)。
执行下列命令,以允许 WebLogic Server/Workshop 将您的 JDK 看作是有效的:
· sudo su:这是替换用户命令,允许一个合法用户作为超级用户或者另一个用户来执行一个命令,正如在 sudoers 文件中所指定的。
· mkdir -p /Library/Java/Home/jre/bin:创建缺少的 bin 目录。
· mkdir /Library/Java/Home/jre/lib:创建缺少的 lib 目录。
· cd /Library/Java/Home/jre/bin
· ln -s ../../bin/java:创建一个到已存在的 Java 可执行体目录的符号目录链接。一个链接对于立即在许多位置维护一个文件的多个拷贝是有用的,它不会因为这些“拷贝”而用尽存储空间;相反,一个链接指向原始的拷贝。
· cd ../lib
· ln -s ../../../Classes/classes.jar rt.jar:创建到已存在的 Java 库文件的符号文件链接。
改进安装
在您打开一个终端 shell 并且启动 WebLogic Workshop IDE(或者是 Gartner 将称呼它的 ISE),并且试图运行一个应用程序时,Workshop 试图使用 Internet Explorer 作为缺省的浏览器。理论上,您可以将浏览器设置为您所希望的任何浏览器,但是这没有任何意义。我能够使Safari 部分工作,这意味着当您点击 Run 选项时,它将从 WebLogic Workshop 自动启动并作为测试工具。然而,我无法使 Internet Explorer 的 Mac 版本自动启动。好消息是 Mac OS X 的 Netscape 7.1 可以漂亮地运行!
我所遇到的一个问题是作为 WebLogic Server 控制台一部分的 HTML 和 Applet 是完全彻底地拒绝载入 Safari 浏览器。因此,尽管我使用 Safari 作为 Workshop 浏览器,但是对于 WebLogic Server 控制台的管理来说,您必须使用其他的浏览器,例如 IE。
为了指定 Workshop 将使用的浏览器,您需要在 Tools>IDE 属性菜单中设置 IDE 属性。
最初,我选择“/Applications/Safari.app/Contents/MacOS/Safari”,表示将 Safari 作为浏览器。有趣的是,在这个屏幕上的“Browse”按钮将允许您导航到正确的目录,但这个目录对于 Mac 的 Finder(类似于 Window Explorer)来说是不可见的,除非您 CTRL-CLICK 或者右击 Safari 图标并且从上下文菜单中选择“Show Package Contents”并且从那里开始工作。
我能够从 Workshop 的 Run 选项自动启动 Safari,但是许多无关的信息被添加到 URL 的前面。如果您清除该垃圾(file:///Users/patshepherd/beaplat/weblogic81/workshop/)并且在正好在端口号之后固定单一的斜杠(http:/localhost:7001/GettingStarted/Controller.jpf > http://localhost:7001/GettingStarted/Controller.jpf),那么应用程序将运行并且您甚至能够调试您的应用程序。非常坦白的讲,在标准的构建-测试开发周期中,这可能对速度产生非常大的影响。(参见图 1)。
图 1
当我发现 Netscape 7.1 可以自动启动时,我喜出望外。直到我试图点击 WebLogic Server 控制台并且发现 Netscape 也不能载入控制台的 applet。图 2 显示我所使用的路径,通过该路径将 Netscape 浏览器注册为自动启动。
图 2
总的说来,Netscape 浏览器是您用作 Workshop 的自动启动浏览器的最好赌注,但是这些浏览器都不能载入 Server 控制台的 applet。但是,您需要注意的一个怪事是,当 Netscape 关闭时它不会自动通知 Workshop 调试会话已经结束-这在 Windows 平台上这是正常的行为。Netscape 浏览器可以在 channels.netscape.com/ns/browsers/download.jsp 处获得。
运行域配置工具
域配置工具允许您从一个预先定义的模板中快速地创建一个域。
当创建您的域时,将要求您指定您的 JVM 所在的目录,因为很明显您正在使用您的本地 Mac OS X JVM 并且其都没有作为我们已安装的通用版本的一部分来提供(参见图 3)。
图 3
通过选择在浏览器树中显示的链接目录来运行我的域,正如在前面所讨论的,这个链接是我们在前面设定的到 /Library/Java/Home 目录的链接(参见图 4)。
图 4
提示和窍门
剪切和粘贴
我经常开的一个玩笑是“复制、粘贴”是世界上最流行的代码重用形式。因此,您使用标准的 Apple 键组合 CMD-C 用于“复制”或者 CMD-V 用于粘贴时可能会失败。值得注意的是,在 Workshop 中的快捷键与它们在 Windows 世界中是完全相同的。例如 CTRL-C 是标准的“复制”组合。事实上,所有的键组合都和它们的 Windows 兄弟们是相同的(有些是例外的,如 CMD-Q 用于“退出”)。
终端速率
现在是提及一个非常有用的特性的时候了-从 finder 拖动一个脚本文件并且将它直接放置到终端 shell 中的功能。例如为了执行一个启动脚本,不再需要键入很长的路径和文件信息。图 5a 和 5b 显示拖动文件“config.sh”到终端 shell 以启动域配置工具的结果,但是该过程对于启动 WebLogic Workshop 和 WebLogic Server 的启动脚本也同样工作得很好。
图 5a
图 5b
结束语
对于那些对 Java 开发环境感兴趣的开发人员,向他们提供“两个世界中的最好东西”-最好的用户接口加上一个非常成熟的 UNIX 版本的力量-您应该认真考虑 Mac OS X。尽管到目前为止,在 OS 9 中 Apple 对于保持最新 JVM 版本是比较迟缓的(从未使得它超过 1.1.8),但是通过 Mac OS X,Apple 现在提供了一个本地 1.4.2 JVM,该 JVM 将 Java 建立为 Mac 世界中的第一流的公民。
增加 BEA 的基于 J2EE 的应用程序平台组件(APS),开发人员可以利用 Mac OS X 的力量开始开发世界级的、面向服务的应用程序。
Workshop 还有一些部分无法在 Mac OS X 上完全地运行,但是需要记住的是,正如我在前面说明的,Mac OS X 目前并不是 BEA 所支持的一个平台,还没有通过严格的认证。通过 BEA 和 Mac 社区的共同努力,Mac OS X 对于真正严谨的开发人员来说可以成为一个杰出的开发环境。如果您希望注册 BEA,对于使 Mac OS X 成为一个 BEA 支持的平台感兴趣的话,请发送电子邮件到 Weblogic-on-osx@bea.com 并且在主题中注明“OS.X interest”。
致谢
我非常感谢在 BEA 的 Rod Chavez 所主管的 O'Reilly Developer WebLogs 上,各种用户发布的一些非常有用的帖子。那里保持稳定的帖子数目,并且感兴趣的读者可以自由地通过自己的张贴来贡献一份力量(www.oreillynet.com/pub/wlg/4091)。
| 作者简介 |
|
Pat Shepherd从 1995 年开始就已经是 Java 革命的一名活跃成员。它已经为多本杂志写作并且是Sams 的“BEA WebLogic Platform 7”一书的技术编辑。它在 BEA 工作超过 4 年时间,目前是一名总体架构师,无论他走到哪里都要传播 Java/SOA 的消息 |
|