2013-03-18 39 views
3

我已經能夠使用下面的Jython腳本成功配置資源環境條目。我使用本地應用程序服務器bin目錄中的ws_admin程序調用Jython腳本。使用ant&jython的WebSphere配置

我在一個團隊工作,螞蟻是我們構建過程中的首選技術。

我已經瀏覽了Web上有關使用ant配置WebSphere的文檔,到目前爲止,它看起來像我主要能夠從螞蟻調用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() 

回答

4

與啓動爲7,除了管理控制檯和的wsadmin,引入配置服務器第三種方式,即properties file based configuration。據稱這種新的管理模式「消除了編寫複雜的wsadmin腳本的需要」,如related Education Assistant presentation所解釋的。

基本上,您所做的是配置單個環境,將感興趣的配置的某些部分導出到便攜式屬性文件中,並稍後將該文件用作腳本的一行輸入,該腳本將應用將屬性文件中的配置發送到另一個目標服務器因此,您可以擺脫Jython的許多行,並使用更簡單的製造工具進行工作,這是一個具有簡單和熟悉語法的屬性文件。

除了上述鏈接,Developerworks還有nice article about this feature

+0

非常好的信息 - 謝謝。 – 2013-03-20 14:45:30

相關問題