7

面对wsadmin 脚本客户端的编程,我看到您可以同时使用jacljython

我对两种语言都有同样的信心。

我想知道,在特定的 wsadmin 编程中,使用一种语言是否比另一种语言有优势;例如鲁棒性、Websphere 管理的示例或库的可用性,或者您在使用和构建此类脚本的经验中产生的类似内容。

4

2 回答 2

9

Jython 是首选语言:

  • Rational Application Developer 具有对 Jyton 的工具支持(Jython 编辑器、调试器、命令完成,以及针对 IDE 中的测试服务器测试脚本的能力)。
  • WebSphere 管理控制台提供控制台命令帮助;如果您想自动化它们,它会为您提供使用管理控制台执行的操作的脚本等效项。此帮助使用 Jython 作为语言。
  • 即使 Jacl 曾经是 wsadmin 的默认语言,IBM 还是会在未来推广 Jython,甚至提供了将 Jacl 脚本转换为 Jython 的工具。在给定链接中引用此工具的描述;

在选择脚本语言时,Jython 是 WebSphere Application Server 的管理脚本语言的战略方向,因为脚本语言的未来增强主要集中在 Jython 的使用上。

于 2012-09-25T08:26:56.913 回答
8

我不是要质疑之前的任何回答,只是添加一些事实。

尽管 Jython 是“战略”方向,但 Jacl 自 WAS v4 以来就一直存在。在 WAS v8.5 中,它仍然是默认设置(并且已弃用!)。

编写管理 API 时考虑了 Jacl。使用 Jython 之一,您必须执行以下技巧才能将服务器列表作为列表:

for srv in AdminConfig.list('Server').splitlines():
    print srv

而在 Jacl 中,可以简单地做到这一点:

foreach srv [$AdminConfig list Server] {
    puts $srv
}

显然,许多 AdminConfig 和 AdminControl 方法将列表作为换行符分隔的字符串返回。

IBM has really cornered itself with Jython and Jacl. They're still using Jython 2.1 (released in 2002, even in the latest and greatest WAS v8.5). Jacl isn't actively supported by the community. The API is Jacl-friendly, wasn't rewritten for Jython. Lots of client solutions are based on the tricks you have to do in Jython, there's plenty of Jacl-based solutions. Even IBM internally has a plenty of dependencies on that legacy. This might be the reason why Jacl is deprecated since WAS v5.1 and still default.

In short:

  • If you're going to write a small script for a specific task, Jacl may be more convenient for you (since you've mentioned that you're comfortable with both Python and Tcl)
  • 但是,如果您有兴趣开发更大的框架来管理您的 WAS 基础架构,那么具有面向对象的 Jython 可能是一个更好的选择。但是不要对那个版本的 Jython 抱有太大的期望——它有很多错误,而且你不能使用太多的 Python 库,因为它们很久以前就放弃了 Python2.1 支持。

结论是:这不是那么简单的答案(这意味着你问了一个好问题)。

于 2012-10-16T08:32:40.033 回答