Usando um Script para Começar a Usar e Executar Rapidamente o WS-Notification

Use um script Jython para configurar os recursos necessários para começar a usar e executar rapidamente o WS-Notification no WebSphere Application Server.

Antes de Iniciar

O script de exemplo fornecido neste tópico destina-se exclusivamente ao uso para desenvolvimento em um servidor único e não deve ser usado em ambientes de implementação de produção ou de rede.

Sobre Esta Tarefa

É possível usar o script de exemplo para configurar um conjunto padrão de recursos que permitem conectar aplicativos do WS-Notification para propósitos de desenvolvimento. Quando executado, o script executa as seguintes ações:

  1. Ele por um barramento de integração de serviços existente na configuração e, se necessário, cria um.
  2. Ele procura por um membro do barramento existente e, se nenhum for localizado, ele inclui o servidor (independente) no barramento e usa a origem de dados padrão.
  3. Ele procura por um destino de espaço de tópico de barramento de integração de serviços existente e, se necessário, cria um.
  4. Ele cria um serviço do WS-Notification da Versão 6.1 ou Versão 7.0.
  5. Ele cria um ponto de serviço do WS-Notification da Versão 6.1 ou 7.0 no servidor local para uma ligação SOAP sobre HTTP.
  6. Ele cria um namespace de tópico permanente para fazer referência ao espaço de tópico do barramento de integração de serviços que foi localizado ou criado na etapa 3.
  7. Ele salva a configuração e descreve onde localizar o WSDL para o novo serviço da web do broker de notificação que foi exposto.

Para utilizar o script de exemplo, conclua as seguintes etapas:

Procedimento

  1. Salve o script no sistema de arquivos e use um nome de sua escolha (por exemplo, wsnQuickStart.py).
  2. Modifique a variável hostRoot definida no script para apontar para a porta HTTP do servidor local (geralmente, 9080).
  3. (Esta etapa é requerida somente para a Versão 6.1 do serviço WS-Notification) Instale e configure o repositório SDO.
  4. Inicie o servidor e, em seguida, execute o comando a seguir. Se você salvou o script com um nome diferente de wsnQuickStart.py, utilize então esse nome.
    wsadmin -f wsnQuickStart.py

Exemplo

A seguir está um script de exemplo:
#######################################################################################
# Script QuickStart do WS-Notification #
#                                                                                     #
# Este script Jython criará rapidamente os recursos básicos necessários para começar  #
# Iniciar usando o WS-Notification no WebSphere Application Server Versão 6.1 ou posterior    #
#                                                                                     #
# Antes de executá-lo, é necessário modificar as variáveis definidas abaixo para corresponderem #
# às definições de configuração.                                                             #
#                                                                                     #
# Nota: #
# - Este script não destina-se à utilização de produção; destina-se à utilização #
#      de somente um servidor independente (não implementação de rede).                             #
# - O script procurará na configuração um barramento existente e, se não for #
# localizado um, será criado um novo barramento #
# - Ele então procurará um Membro do Barramento existente no barramento escolhido. Se não for #
# localizado um, será criado um utilizando o Armazenamento de Arquivos padrão #
# - Ele então procurará um espaço de tópico do barramento de integração de serviço existente. Se não #
# for localizado um, será criado um.                                          #
#                                                                                     #
# Execute o script digitando; #
#   wsadmin -f wsnQuickStart.py                                                       #
#                                                                                     #
#######################################################################################

###########################################################
# Variáveis de Configuração #
#                                                         #
# Configure as seguintes variáveis para corresponderem à sua configuração #
###########################################################
# A raiz da URL da porta HTTP no servidor local
hostRoot = "http://xyz.ibm.com:9080"
# O tipo de serviço WS-Notification que você deseja criar (Versão 6.1 ou 7.0)
wsnServiceType = "V7.0"

#######################################################################################
# Agora crie os objetos de configuração utilizando as variáveis definidas acima #
#######################################################################################

# Essas variáveis são opções arbitrárias e só devem ser configuradas se necessário.
wsnServiceName = "myWSNService"+wsnServiceType
wsnServicePointName = "myWSNServicePoint"+wsnServiceType
eplName = "myNewEPL"
tnsNamespaceURI = "http://example.org/topicNamespace/example1"

# Variáveis de ambiente gerais
nodeName = AdminTask.listNodes().split("\n")[0].rstrip()
server = AdminTask.listServers().split("\n")[0].rstrip()

print "###########################################################"
print "# Verificar os pré-requisitos antes de iniciar #"
print "###########################################################"
# Verifique a existência do barramento
requiresRestart = "false"
myBuses = AdminTask.listSIBuses().split("\n")
myBus = myBuses[0].rstrip()

if (myBus == ""):
        print "  *** Criando novo barramento "
        myBus = AdminTask.createSIBus("-bus MySampleBus -busSecurity false 
                                       -scriptCompatibility 6.1")
        requiresRestart = "true"
#endIf 
siBusName = AdminConfig.showAttribute(myBus, "name" )
print "  nome do barramento de integração de serviços: "+siBusName+" "

# Verifique a existência do membro do barramento
busMembers = AdminTask.listSIBusMembers(" -bus "+siBusName).split("\n")
myBusMember = busMembers[0].rstrip()

if (myBusMember == ""):
        print " "
        print "  *** Criando novo Membro do Barramento "
        busMemberName = AdminConfig.showAttribute(server, "name")
        myBusMember = AdminTask.addSIBusMember(" -bus "+siBusName+" 
                        -node "+nodeName+" -server "+busMemberName)
        print " "
        requiresRestart = "true"
else:
        nodeName = AdminConfig.showAttribute(myBusMember, "node")
        busMemberName = AdminConfig.showAttribute(myBusMember, "server")
#endElse 
print "  Membro do barramento de integração de serviços no nó: "+nodeName+" "
print "                               no servidor: "+busMemberName+" "

# Localize um espaço de tópico para ser utilizado
topicSpaces = AdminTask.listSIBDestinations(" -bus "+siBusName+" 
                                  -type TopicSpace ").split("\n")
tSpace = topicSpaces[0].rstrip()

if (tSpace == ""):
        print "  *** Criando um Espaço de Tópico "
        tSpace = AdminTask.createSIBDestination(" -bus "+siBusName+" 
                        -node "+nodeName+" -server "+myBusMember+" 
                        -name MyTopicSpace -type TopicSpace")
        print " "

#endIf 
siBusTopicSpaceName = AdminConfig.showAttribute(tSpace, "identifier" )
print "     espaço de tópico do barramento de integração de serviços: "+siBusTopicSpaceName+" "

print " "
print "###########################################################"
print "# Criar o serviço WS-Notification                         #"
print "###########################################################"
newService = AdminTask.listWSNServices(" -name "+wsnServiceName+" 
                            -bus "+siBusName).split("\n")[0].rstrip()

if (newService == ""):
        newService = AdminTask.createWSNService(" -name "+wsnServiceName+" 
                            -bus "+siBusName+" "+" -type "+wsnServiceType)
        print "WS-Notification service created: "+wsnServiceName+" "
        print "                         on bus: "+siBusName+" "
else:
        print "WS-Notification service '"+wsnServiceName+"' "
        print "  already exists on bus '"+siBusName+"' "
#endElse 

print " "
print "###########################################################"
print "# Criar o ponto de serviço do WS-Notification             #"
print "###########################################################"
eplURLRoot = hostRoot+"/wsn"
wsdlURLRoot = hostRoot+"/SIBWS/wsdl"

newServicePoint = AdminTask.listWSNServicePoints(newService, "
                -name "+wsnServicePointName+" " ).split("\n")[0].rstrip()

if (newServicePoint == ""):
        if (wsnServiceType == "V7.0"):
            newServicePoint = AdminTask.createWSNServicePoint(newService, "
            -name "+wsnServicePointName+" -node "+nodeName+" -server "+busMemberName)
        else:
            newServicePoint = AdminTask.createWSNServicePoint(newService, "
            -name "+wsnServicePointName+" 
            -node "+nodeName+" -server "+busMemberName+" -eplName "+eplName+" 
            -eplURLRoot "+eplURLRoot+" -eplWSDLServingURLRoot "+wsdlURLRoot+" " )
        print "WS-Notification service point created: "+wsnServicePointName+" "
        print "                        on bus member: "+busMemberName+" "
        print "                              on node: "+nodeName+" "
else:
        print "WS-Notification service point '"+wsnServicePointName+"' "
        print "already exists on WS-Notification service '"+wsnServiceName+"' "
#endElse 

print " "
print "###########################################################"
print "# Criar o espaço de nomes de tópico permanente do WS-Notification #"
print "###########################################################"
newTopicNamespace = AdminTask.listWSNTopicNamespaces(newService, "
                    -namespace "+tnsNamespaceURI+" ").split("\n")[0].rstrip()

if (newTopicNamespace == ""):
    newTopicNamespace = AdminTask.createWSNTopicNamespace(newService, "
      -namespace "+tnsNamespaceURI+" -busTopicSpace "+siBusTopicSpaceName+" 
      -reliability RELIABLE_PERSISTENT")
  print "Espaço de nomes de tópico do WS-Notification criado: "+tnsNamespaceURI+" "
  print "                 espaço de tópico do barramento: "+siBusTopicSpaceName+" "
else:
  print "WS-Notification permanent topic namespace already exists: "
        +tnsNamespaceURI+" "
#endElse 

#######################################################################################
# Todos os objetos foram criados - informe o usuário para onde prosseguir #
#######################################################################################

print " "
print "###########################################################"
print "# Resumo                                                  #"
print "###########################################################"

# Calcule onde você localiza o WSDL para o novo serviço.
if (wsnServiceType == "V7.0"):
  print "IMPORTANTE: Como você criou um serviço da Versão 7.0," 
  print "é necessário iniciar o aplicativo recém-instalado;"
  print "           WSN_"+wsnServiceName+"_"+wsnServicePointName 
  print " "

  wsdlLocation = hostRoot+"/"+wsnServiceName+wsnServicePointName
                         +"NB/Service?wsdl"
else:
  print "IMPORTANT: Because you've created a Version 6.1 service" 
  print "é necessário iniciar 2 aplicativos recém instalados;"
  serverName = AdminConfig.showAttribute(server, "name")
  print "           "+eplName+"."+nodeName+"."+serverName
  print "           sibws."+nodeName+"."+serverName
  print " "
  wsdlLocation = hostRoot+"/wsn/soaphttpengine/"+siBusName+"/"
                 +wsnServiceName+"NotificationBroker/"
                 +wsnServicePointName+"NotificationBrokerPort?wsdl"
print " The WSDL for the new service can be viewed at the following location; "
print "   "+wsdlLocation+" "
print " "
print " Your web service applications can publish and subscribe to any topics in the namespace; "
print "   "+tnsNamespaceURI+" "
print " "
if (requiresRestart == "true"):
  print " You must now restart the server for the changes to take effect. "
  print " "
#endIf 

print " "
print "###########################################################"
print "# Save the configuration and exit                         #"
print "###########################################################"
AdminConfig.save()
sys.exit()

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjwsn_task_sysa0
Nome do arquivo: tjwsn_task_sysa0.html