WebSphere 配置 with ant & jython



我已经能够使用下面的Jython脚本成功配置资源环境项。我用本地应用服务器bin目录下的ws_admin程序调用Jython脚本。

我在一个团队工作,在我们的构建过程中,ant是首选技术。

我在网上查找了关于用ant配置WebSphere的文档,到目前为止,对我来说,看起来主要是能够从ant调用ws_admin之类的程序。

是否有可能直接使用ant而不是使用Jython或Jacl脚本配置资源环境项?如果不是,我该如何设置ant任务来减少设置资源环境条目所需的Jython数量?

下面是我当前设置资源环境条目的Jython脚本。最终寻找减少对Jython依赖的方法…

# Set up Variables used within this script
objServerAttrs  = AdminControl.completeObjectName('WebSphere:type=Server,*')
node            = AdminControl.getAttribute(objServerAttrs, 'nodeName')
server          = AdminControl.getAttribute(objServerAttrs, 'name')
provider        = "Test_ConfigurationProvider"
providerFactory = "com.DG_ConfigurationFactory"
providerClass   = "com.DG_Configuration"
# Function for creating resource custom properties
def createResourceCustomProperty(envEntry, propName, propValue):
    propSet = AdminConfig.showAttribute(envEntry, 'propertySet') 
    if propSet == None:
        propSet = AdminConfig.create('J2EEResourcePropertySet',envEntry,[])
    name = ['name', propName]
    value = ['value', propValue]
    propAttrs = [name, value]
    AdminConfig.create('J2EEResourceProperty', propSet, propAttrs)
    return
# Create the resource environment provider
AdminResources.createResourceEnvProvider(node, server, provider)
AdminResources.createResourceEnvProviderRef(node,server,provider, providerFactory, providerClass)
# Create the resource environment entries
## Context Configuration
envEntry = AdminResources.createResourceEnvEntries(node,server,provider, "Context Configuration", "test-config/context")
createResourceCustomProperty(envEntry, "deployment.environment", "IDE")
createResourceCustomProperty(envEntry, "server.context", "com.context.DG_WebSphereServerContext")
createResourceCustomProperty(envEntry, "user.context", "com.context.DG_WebSphereUserContext")
createResourceCustomProperty(envEntry, "log.directory", "C:/Development/WebSphere/Logs")
createResourceCustomProperty  (envEntry, "file.directory", "C:/Development/WebSphere/AppFiles")
## Mail Configuration
envEntry = AdminResources.createResourceEnvEntries(node,server,provider, "Mail  Configuration", "test-config/mail")
createResourceCustomProperty(envEntry, "enabled", "false")
createResourceCustomProperty(envEntry, "mailSessionJndiName", "mail/MailSession")
## User Repository Configuration
envEntry = AdminResources.createResourceEnvEntries(node, server, provider, "User Repository Configuration", "test-config/userRepository")
createResourceCustomProperty(envEntry, "ldap.provider.url", "ldap://test.com:389/cn=users,dc=com")
createResourceCustomProperty    (envEntry, "ldap.security.principal", "cn=was_user,cn=users,dc=com")
# Save changes to the configuration
AdminConfig.save()

从WAS 7开始,除了管理控制台和wsadmin之外,还引入了第三种配置服务器的方法,即基于属性文件的配置。这个新的管理模型被认为"消除了编写复杂wsadmin脚本的需要",正如在相关的教育助理演示中所解释的那样。

基本上,您要做的是配置一个环境,将感兴趣的配置部分导出到一个可移植属性文件中,然后使用该文件作为wsadmin脚本的单行输入,该脚本将属性文件中的配置应用到另一个目标服务器。因此,您可以去掉许多Jython代码行,使用一个简单得多的工件,这是一个具有简单而熟悉语法的属性文件。

除了上面的链接之外,Developerworks上还有一篇关于这个特性的好文章。

相关内容

  • 没有找到相关文章