2016-10-23 3 views
0

Я пытаюсь передать данные из пакетного файла в файл jython и использовать его при создании фабрик подключения очереди webspehere. Я новичок в этом языке сценариев Jythn. пожалуйста, помогите мне решить это.Как передать данные из командного файла в файл jython

Пакетный файл:

@rem create a JMS connection factories call %PROFILE_PATH%\bin\wsadmin -lang jython -f checkconn.jy %NODE_NAME% %SERVER_NAME% %QUEUE_MANAGERNAME% %QUEUE_HOSTNAME% %QUEUE_PORTNUMBER% 

так я передаю ниже значений из пакетного файла для Jython файла:

следующие параметры передаются в среде сценариев и доступны в качестве аргументов, которые хранятся в переменной ARGV:

"[MyServer7Node, MyServer7, QM_BFDC49, 127.0.0.1, 1416]" 

Мой Jython код:

import sys 

nodeName =sys.argv[0] 
serverName =sys.argv[1] 
queueManagername =sys.argv[2] 
queueHostname =sys.argv[3] 
queuePort=sys.argv[4] 

def createconnectionFactories(nodeName,serverName,queueManagername,queueHostname,queuePort): 
     print "Creating connection factories" 
     ds = AdminConfig.getid("/Node:"+nodeName+"/Server:"+serverName+"/") 
     print queuePort 
     AdminTask.createWMQConnectionFactory(ds,["-name ConnectionFactory -jndiName 'jms/ConnectionFactory' -type CF -qmgrName '+queueManagername+' -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname '+queueHostname+' -qmgrPortNumber '+queuePort+' -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"]) 
     AdminTask.createWMQConnectionFactory(ds,["-name IntegrationConnectionFactory -jndiName 'jms/IntegrationConnectionFactory' -type CF -qmgrName '+queueManagername+' -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname '+queueHostname+' -qmgrPortNumber '+queuePort+' -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"]) 
     AdminConfig.save() 

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
# Main program 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
createconnectionFactories(nodeName,serverName,queueManagername,queueHostname,queuePort) 

Когда я пытаюсь запустить скрипт, я не могу вставить значение для queueManagername, queueHostname и queuePort.

Может ли кто-нибудь сказать мне, как я могу передать значение ввода пользователем здесь в сценарии jython?

Поскольку в этом случае работает '+ queueManagername +', '+ queueHostname +', '+ queuePort +'.

+0

Поскольку подсветка синтаксиса указывает, что вы фактически не пытаетесь интерполировать переменные в свою строку. Проверьте [документы о форматировании строк] (https://docs.python.org/2/library/string.html#format-examples) для примеров того, как это сделать правильно – UnholySheep

+0

Не могли бы вы рассказать мне в моем случае Как можно Я отформатирую строку, чтобы она могла принимать значения для queueManagername, queueHostname и queuePort –

+0

@UnholySheep: Я новичок в языке сценариев Jython –

ответ

0
import sys 

nodeName =sys.argv[0] 
serverName =sys.argv[1] 

def createconnectionFactories(nodeName,serverName): 
     print "Creating connection factories" 
     ds = AdminConfig.getid("/Node:"+nodeName+"/Server:"+serverName+"/") 
     AdminTask.createWMQConnectionFactory(ds,["-name ConnectionFactory -jndiName 'jms/ConnectionFactory' -type CF -qmgrName QM_BFDC49 -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname 127.0.1.1 -qmgrPortNumber 1416 -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"]) 
     AdminTask.createWMQConnectionFactory(ds,["-name IntegrationConnectionFactory -jndiName 'jms/IntegrationConnectionFactory' -type CF -qmgrName QM_BFDC49 -wmqTransportType BINDINGS_THEN_CLIENT -qmgrHostname 127.0.1.1 -qmgrPortNumber 1416 -qmgrSvrconnChannel SYSTEM.AUTO.SVRCONN"]) 
     AdminConfig.save() 

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
# Main program 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
createconnectionFactories(nodeName,serverName)