Utilisation d'un script pour démarrer et commencer à travailler rapidement avec WS-Notification

Utilisez un script jython pour configurer les ressources nécessaires pour démarrer et et commencer à travailler rapidement avec WS-Notification dans WebSphere Application Server.

Avant de commencer

L'exemple de script fourni dans cette rubrique est destiné au développement sur un seul serveur uniquement, et ne doit pas être utilisé dans un environnement de production ou de déploiement réseau.

Pourquoi et quand exécuter cette tâche

Vous pouvez utiliser cet exemple de script pour configurer un ensemble de ressources par défaut vous permettant de connecter des applications WS-Notification à des fins de développement. Une fois exécuté, le script effectue les actions suivantes :

  1. Recherche dans la configuration un bus d'intégration de services existant, et en crée un si nécessaire.
  2. Recherche un membre de bus existant, et si aucun membre n'est trouvé, ajoute le serveur (autonome) au bus, avec la source de données par défaut.
  3. Recherche une destination d'espace de sujet du bus d'intégration de services existante, et en crée une si nécessaire.
  4. Crée un service WS-Notification, version 6.0 ou 7.0.
  5. Crée un point de service WS-Notification version 6.0 ou 7.0 sur le serveur local pour une liaison SOAP sur HTTP.
  6. Crée un espace de nom de sujet permanent pour WS-Notification pour référencer l'espace de sujet du bus d'intégration de services trouvé ou créé à l'étape 3.
  7. Enregistre la configuration et indique l'emplacement du fichier WSDL du nouveau service Web du courtier de notification qui a été exposé.

Pour utiliser l'exemple de script, effectuez les étapes suivantes :

Procédure

  1. Sauvegardez le script dans le système de fichiers sous un nom de votre choix (par exemple, wsnQuickStart.py).
  2. Modifiez la variable racineHôte définie dans le script de sorte à ce qu'elle pointe vers le port HTTP du serveur local (en général, 9080).
  3. (Cette étape n'est requise que pour un service WS-Notification version 6.1) Installation et configuration du référentiel SDO.
  4. Démarrez le serveur, puis exécutez la commande ci-dessous. Si vous avez sauvegardé le script sous un nom différent de wsnQuickStart.py, utilisez ce nom à la place.
    wsadmin -f wsnQuickStart.py

Exemple

Voici l'exemple de script :
#######################################################################################
# WS-Notification QuickStart script #
#                                                                                     #
# This Jython script will quickly create the basic resources required in order to     #
# start using WS-Notification in WebSphere
Application Server Version 6.1 or later    #
#                                                                                     #
# Before executing it you must modify the variables defined below to match your #
# configuration settings.                                                             #
#                                                                                     #
# Note: #
# - This script is not intended for production use, and is intended for use on #
#      a stand-alone server (not network deployment) only.                             #
# - The script will search the configuration for an existing bus, and if one is #
# not found then a new bus will be created #
# - It will then look for an existing Bus Member on the chosen bus. If one is not #
# found then one will be created using the default File Store #
# - It will then look for an existing service integration bus topic space. If one #
# is not found then it will create one.                                          #
#                                                                                     #
# Execute the script by typing; #
#   wsadmin -f wsnQuickStart.py                                                       #
#                                                                                     #
#######################################################################################

###########################################################
# Configuration variables #
#                                                         #
# Set the following variables to match your configuration #
###########################################################
# The URL root of HTTP port on the local server
hostRoot = "http://xyz.ibm.com:9080"
# The type of WS-Notification service you want to create (Version 6.1 or Version 7.0)
wsnServiceType = "V7.0"

#######################################################################################
# Now create the configuration objects using the variables defined above #
#######################################################################################

# These variables are arbitrary choices and need not be set unless required.
wsnServiceName = "myWSNService"+wsnServiceType
wsnServicePointName = "myWSNServicePoint"+wsnServiceType
eplName = "myNewEPL"
tnsNamespaceURI = "http://example.org/topicNamespace/example1"

# General environment variables
nodeName = AdminTask.listNodes().split("\n")[0].rstrip()
server = AdminTask.listServers().split("\n")[0].rstrip()

print "###########################################################"
print "# Check the pre-requisites before you begin               #"
print "###########################################################"
# Check for the existence of the bus
requiresRestart = "false"
myBuses = AdminTask.listSIBuses().split("\n")
myBus = myBuses[0].rstrip()

if (myBus == ""):
        print "  *** Creating new bus "
        myBus = AdminTask.createSIBus("-bus MySampleBus -busSecurity false 
                                       -scriptCompatibility 6.1")
        requiresRestart = "true"
#endIf 
siBusName = AdminConfig.showAttribute(myBus, "name" )
print "  service integration bus name: "+siBusName+" "

# Check for the existence of the bus member
busMembers = AdminTask.listSIBusMembers(" -bus "+siBusName).split("\n")
myBusMember = busMembers[0].rstrip()

if (myBusMember == ""):
        print " "
        print "  *** Creating new Bus Member "
        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 "  service integration bus Member on node: "+nodeName+" "
print "                               on server: "+busMemberName+" "

# Find a topic space to use
topicSpaces = AdminTask.listSIBDestinations(" -bus "+siBusName+" 
                                  -type TopicSpace ").split("\n")
tSpace = topicSpaces[0].rstrip()

if (tSpace == ""):
        print "  *** Creating a Topic Space "
        tSpace = AdminTask.createSIBDestination(" -bus "+siBusName+" 
                        -node "+nodeName+" -server "+myBusMember+" 
                        -name MyTopicSpace -type TopicSpace")
        print " "

#endIf 
siBusTopicSpaceName = AdminConfig.showAttribute(tSpace, "identifier" )
print "     service integration bus topic space: "+siBusTopicSpaceName+" "

print " "
print "###########################################################"
print "# Create the WS-Notification service                      #"
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 "# Create the WS-Notification service point                #"
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 "# Create the WS-Notification permanent topic namespace    #"
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 "WS-Notification topic namespace created: "+tnsNamespaceURI+" "
  print "                        bus topic space: "+siBusTopicSpaceName+" "
else:
  print "WS-Notification permanent topic namespace already exists: "
        +tnsNamespaceURI+" "
#endElse 

#######################################################################################
# All the objects have been created - inform the user where to proceed next #
#######################################################################################

print " "
print "###########################################################"
print "# Summary                                                 #"
print "###########################################################"

# Calculate where you would find the WSDL for the new service.
if (wsnServiceType == "V7.0"):
  print "IMPORTANT: Because you've created a Version 7.0 service" 
  print "you need to start the newly installed application;"
  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 "you need to start 2 newly installed applications;"
  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()

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjwsn_task_sysa0
Nom du fichier : tjwsn_task_sysa0.html