在wsadmin脚本编写中使用jython与jacl的优点(WebSphere Application Server 7+)

时间:2012-09-25 06:30:14

标签: websphere jython wsadmin jacl

面对 wsadmin脚本客户端的编程,我发现您可以同时使用 jacl jython

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

我想知道,就wsadmin编程而言,是否有使用一种语言优于另一种语言的优点;例如,健壮性,用于websphere管理的示例或库的可用性,或者您在使用和构建此类脚本方面的经验所产生的。

2 个答案:

答案 0 :(得分:9)

Jython是首选的语言:

  • Rational Application Developer具有Jyton的工具支持(Jython编辑器,调试器,命令completition以及在IDE内部针对测试服务器测试脚本的能力)。
  • WebSphere管理控制台提供控制台命令帮助;它为您提供了使用管理控制台执行的操作的脚本等效项,以防您想要自动化它们。这种帮助使用Jython作为语言。
  • 即使Jacl是wsadmin的默认语言,IBM也会为未来推广Jython,甚至提供tool to convert Jacl scripts to Jython。在给定链接上引用此工具的描述;
  

选择脚本语言时,Jython是战略方向   作为WebSphere Application的管理脚本语言   服务器,因为脚本语言的未来增强是   专注于使用Jython。

答案 1 :(得分:8)

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

虽然Jython是“战略”方向,但是自WAS v4以来,Jacl一直在那里。在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已经真正与Jython和Jacl合作。他们仍在使用Jython 2.1(2002年发布,即使在最新和最好的WAS v8.5中)。 Jacl没有得到社区的积极支持。 API是Jacl友好的,没有为Jython重写。很多客户端解决方案都基于你在Jython中必须要做的技巧,有很多基于Jacl的解决方案。甚至IBM内部也对这一遗产有很多依赖。这可能就是为什么Jacl从WAS v5.1开始被弃用并且仍然是默认值的原因。

简而言之:

  • 如果您要为特定任务编写一个小脚本,Jacl可能对您更方便(因为您已经提到您对Python和Tcl都很满意)
  • 如果您有兴趣开发用于管理WAS基础架构的更大框架,那么Jython及其面向对象可能是更好的选择。但是不要期望从那个版本的Jython中得到太多 - 它非常错误,你将无法使用太多的Python库,因为它们在很久以前就放弃了Python2.1支持。

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