WLSTException:创建JMS队列时发生错误

时间:2015-09-09 03:55:11

标签: weblogic wlst

我正在尝试使用以下代码创建JMSQueue但在

上出错
SELECT EXISTS (SELECT 1 FROM Members WHERE MemberID = '999999999999')

当我连接到服务器运行时并检查我可以看到JMS模块不可用,但是从管理控制台我可以清楚地看到它(JMS模块BAMJMSSystemResource)可用,它也没有给出错误

注意:我在调用createJMSQueue函数之前创建JMS模块)

import urllib.request
import urllib.parse
from bs4 import BeautifulSoup
import re
re.IGNORECASE = True

#SourceUrl
url = "http://www.imdb.com"

urls = [url]

visited =[url]

robotsUrl = url +'/robots.txt'


while len(urls) < 250000:
        try:
            htmltext = urllib.request.urlopen(urls[0]).read()
            robots = urllib.request.urlopen(robotsUrl).read()
            disallowList = re.findall(b'Disallow\:\s*([a-zA-Z0-9\*\-\/\_\?\.\%\:\&]+)', robots)
        except:
            print (urls[0])

        sourceCode = BeautifulSoup(htmltext, "html.parser")
        urls.pop(0)
        print(len(urls))
        for link in sourceCode.findAll('a', href=True):
            if "http://" not in link['href']:
                link['href'] = urllib.parse.urljoin(url,link['href'])
            in_disallow = False
            for i in range(len(disallowList)):
                if (disallowList[i]).upper().decode() in link['href'].upper():
                    in_disallow = True
                    break
            if not in_disallow:
                if link['href'] not in visited:
                    urls.append(link['href'])
                    visited.append(link['href'])
print (visited)

错误是,

cd ('/JMSSystemResources/BAMJMSSystemResource/JMSResource/BAMJMSSystemResource/Queues/SampleQueue')

真想了解什么是错的吗?

4 个答案:

答案 0 :(得分:0)

除了“cd(”/ JMSSystemResources /“+ jmsModuleName +”/ JMSResource /“+ jmsModuleName +'/ Queues /'+ jmsQueueName)中的双引号和单引号的混合外,此部分脚本看起来很好。” 并且分配目标“cmo.addTarget()”,如果子部署已经定位到JMS服务器,则不需要定位队列。 您可以检查是否已成功激活创建JMS模块,子部署,将JMS模块定位到服务器以及将子部署到JMS服务器的编辑会话。 然后这个队列创建应该可以正常工作。

的问候, Kshitij

答案 1 :(得分:0)

这可能意味着您要创建的JMS已存在于WebLogic中。确认JMS名称不存在。

答案 2 :(得分:0)

我与您分享我的正确代码:

def create_jms_object(name, module, subdeployment, type):
  cd('/JMSSystemResources/'+module+'/JMSResource/'+module)
  myob=create(name, type)
  myob.setJNDIName("jms/"+name)
  myob.setSubDeploymentName(subdeployment)

我在这里调用函数:

queue_name = queue['name']
  sub_depl_name = queue['sub_deployment']
  if(not_exists_jms_ud_qeue(jms_module_name, queue_name)):
    print 'Creating queue '+queue_name
    create_jms_object(queue_name, jms_module_name, sub_depl_name, 'UniformDistributedQueue')
    print 'Created queue '+queue_name
  else:
    print 'UniformDistributedQueue ' + queue_name + ' already exists'
  cmo = cd('/JMSSystemResources/'+jms_module_name+'/JMSResource/'+jms_module_name+'/UniformDistributedQueues/'+queue_name+'/DeliveryFailureParams/'+queue_name)
  redelivery_limit = queue.get('redelivery_limit',-1)
  set('RedeliveryLimit', redelivery_limit)
  errorDestinationName = queue.get('error_destination', None)
  if (errorDestinationName is not None):
    errorDestination = getMBean('/JMSSystemResources/'+jms_module_name+'/JMSResource/'+jms_module_name+'/UniformDistributedQueues/'+errorDestinationName)
    set('ErrorDestination', errorDestination)
    print 'Dead letter queue set to: '+errorDestinationName
  else:
    cmo.unSet('ErrorDestination')
    print 'Dead letter queue unset'
  cd('/JMSSystemResources/'+jms_module_name+'/JMSResource/'+jms_module_name+'/UniformDistributedQueues/'+queue_name+'/DeliveryParamsOverrides/'+queue_name)
  redelivery_delay = queue.get('redelivery_delay',-1)
  set('RedeliveryDelay', redelivery_delay)
  time_to_deliver = queue.get('time_to_deliver',-1)
  set('TimeToDeliver', time_to_deliver)

其中队列对象如下:

{
    "name" : "events_reg_queue",
    "sub_deployment" : "Registry-SD",
    "redelivery_limit" : 1
}

和以下实用程序功能:

def not_exists_jms_ud_qeue(jmsModuleName, jmsResourceName):
  try:
    myMBean = getMBean('/JMSSystemResources/'+jmsModuleName+'/JMSResource/'+jmsModuleName+'/UniformDistributedQueues/'+jmsResourceName)
    if (myMBean is None):
      return true
    return false
  except:
    return true

答案 3 :(得分:0)

您尝试手动遍历路径吗?

您可以使用wlst命令行遍历/ edit位置。 使用cd(“”)和ls()遍历并列出您创建的那些属性。