2016-04-12 6 views
1

Я развертываю EAR-файл через jython-скрипт на IBM WAS, но во время развертывания я получаю сообщение об ошибке, и приложение не подходит.NameNotFoundException при развертывании с использованием jython

ОШИБКА КОД:

 J2CA0052E: The lookup of the Activation Specification with JNDI Name jms/SampleQueueListener failed due to the following exception: javax.naming.NameNotFoundException: Context: cell01/nodes/dmgr11/servers/dmgr, name: jms/SampleQueueListener: First component in name jms/SampleQueueListener not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0] 

jms/SampleQueueListener уже есть. Я использую WAS 8.5.5.8 и развертываю приложение через Jython-скрипт в ОС Linux, и я также использую агент узла и dmgr.

питон скрипт для развертывания приложения:

def installapps(): 
try: 
    print "********************************************************" 
    print "Installing Application in IBM WAS" 
    print "********************************************************" 
    print "\n Installing ear file -- %s " % eFile 
    AdminApp.install(eFile,["-usedefaultbindings", "-BindJndiForEJBMessageBinding",[["samplesystemservice.jar", "ServiceActivator", "sampleservices.jar,META-INF/ejb-jar.xml", "SampleQueueListener", "jms/SampleQueueListener", "jms/SampleJMSQueue"], ["sampleystemservices.jar", "BootstrapMessageBean", "samplesystemservices.jar,META-INF/ejb-jar.xml", "SampleTopicListener", "jms/SampleTopicListener", "jms/SampleJMSTopic"]]]) 
AdminConfig.save() 
print "***************hello22***********" 
AdminApp.install(wFile, ["-appname", wName, "-contextroot", ctxroot]) 
print "***************hello33**********" 
    AdminConfig.save() 
    print "Completed installing applications.\n" 
    print "Saving configuration. This may take time, please wait...." 
    print "********************************************************\n" 
    print "********************************************************" 
    print "Completed the installation of Application in IBM WAS" 
    print "********************************************************" 
except: 
    AdminControl.stopServer("server1", node) 
print "Unable to install Application" 
print "********************************************************" 
sys.exit(0) 
try: 
    print "********************************************************" 
    print "Stop the WAS for post configuration of Application" 
    AdminControl.stopServer("server1", node)  
except: 

ответ

2

Вы должны исправить сценарий. В настоящее время развертывается приложение к dmgr серверу, увидеть контекст:

Context: cell01/nodes/dmgr11/servers/dmgr, name: jms/SampleQueueListener

dmgr сервер только для управления, а не для развертывания собственных приложений и ресурсов. Вам необходимо указать имя узла и имя_сервера или имя_класса, если вы развертываете среду ND. Обычно сервер для приложений называется . Если у вас нет сервера, вам может понадобиться его создать.

Сначала я предлагаю использовать консоль веб-администратора, пока вы не узнаете больше о своей топологии и управлении.

UPDATE

Вы должны отобразить модули правильных серверов см MapModulesToServers вариант, как это:

AdminApp.install('DefaultApplication.ear', ['-appname', 'TEST', '-MapModulesToServers', [['.*', 
'.*', 'WebSphere:cell=myCell,node=myNode,server=myServer']]]) 

Или вы можете использовать предоставленные сценарии из библиотеки, которые могут быть проще и более удобно:

AdminApplication.installAppWithNodeAndServerOptions(appName, earFile, 
nodeName, serverName) 

Смотрите также:

+0

Привет газ, я использую имя узла сфера мне нужно сделать, чтобы обеспечить имя сервера, а также. – prank

+0

Ресурсы могут быть установлены на узле, но приложения только на серверах/кластерах. Ваше приложение каким-то образом установлено на 'dmgr', что неверно. Вы должны установить его на другой сервер. Вы можете определить ресурсы на узле, к которому принадлежит этот сервер. – Gas

+0

Привет, газ, я добавил скрипт jython, который используется для развертывания приложения на сервере. Не могли бы вы сообщить мне, где я делаю неправильно. – prank