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

Fra*_*ini 7 websphere jython wsadmin jacl

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

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

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

Kur*_*glu 9

Jython是首选的语言:

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

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

  • 另外,我认为开发Python体验更有价值. (2认同)

Mar*_*nka 8

我不是要质疑以前的任何回复,只是添加一些事实.

虽然Jython是"战略"方向,但是自WAS v4以来,Jacl一直在那里.在WAS v8.5中,它仍然是默认值(并且已弃用!).

管理API是用Jacl编写的.使用Jython,你必须做这样的技巧,以获得服务器列表作为列表:

for srv in AdminConfig.list('Server').splitlines():
    print srv
Run Code Online (Sandbox Code Playgroud)

而在Jacl中,人们可以这样做:

foreach srv [$AdminConfig list Server] {
    puts $srv
}
Run Code Online (Sandbox Code Playgroud)

显然,许多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支持.

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