jmsjndijythonwebsphere-8ibm-was

NameNotFoundException while deploying using jython


I am deploying EAR file through jython script on IBM WAS but at the time of deploying I am getting error and application not coming up.

ERROR CODE:

     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]

The jms/SampleQueueListener is already there. I am using WAS 8.5.5.8 and deploying application through Jython script on Linux OS and I am also using node agent and dmgr.

python Script to deploy app:

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:

Solution

  • You have to fix your script. Currently you are deploying your app to dmgr server, see the context:

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

    The dmgr server is only for management, not for deploying your own apps and resources. You need to provide nodeName and serverName or clusterName, if you are deploying to the ND environment. Usually the server for apps is called server1. If you dont have any server you may need to create it.

    I'd suggest using web admin console first, until you have better knowledge about your topology and management.

    UPDATE

    You need to map modules to the correct servers, see MapModulesToServers option, like this:

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

    Or you can use provided scripts from library, which may be easier and more convenient:

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

    See also: