【问题标题】:NameNotFoundException while deploying using jython使用 jython 部署时出现 NameNotFoundException
【发布时间】:2016-08-03 04:36:49
【问题描述】:

我正在通过 IBM WAS 上的 jython 脚本部署 EAR 文件,但在部署时出现错误并且应用程序未启动。

错误代码:

     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 并通过 Linux 操作系统上的 Jython 脚本部署应用程序,并且我还使用节点代理和 dmgr。

部署应用的python脚本:

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:

【问题讨论】:

    标签: jms jndi jython websphere-8 ibm-was


    【解决方案1】:

    你必须修复你的脚本。目前您正在将您的应用部署到dmgr 服务器,请参阅上下文:

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

    dmgr 服务器仅用于管理,不用于部署您自己的应用程序和资源。如果要部署到 ND 环境,则需要提供 nodeName 和 serverName 或 clusterName。通常应用程序的服务器称为server1。如果您没有任何服务器,您可能需要创建它。

    我建议先使用 Web 管理控制台,直到您对拓扑和管理有更好的了解。

    更新

    您需要将模块映射到正确的服务器,请参阅MapModulesToServers 选项,如下所示:

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

    或者您可以使用库中提供的脚本,这可能更简单方便:

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

    另见:

    【讨论】:

    • 嗨,gas,我正在使用范围节点名称,我是否还需要提供服务器名称。
    • 资源可以安装在节点上,但应用只能安装在服务器/集群上。您的应用不知何故安装在 dmgr 上,这是不正确的。您必须将其安装在其他服务器上。您可以在 Node 上定义该服务器所属的资源。
    • 嗨,Gas,我添加了 jython 脚本,用于在服务器上部署应用程序。你能告诉我我哪里做错了吗。
    猜你喜欢
    • 2014-05-07
    • 2017-10-30
    • 1970-01-01
    • 2020-10-02
    • 2010-12-09
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多