Ajour de gestionnaires globaux des services Web

Les composants qui doivent enregistrer des gestionnaires de services Web auprès de tous les noeuds finaux de services Web doivent implémenter l'interface Handler et enregistrer cette implémentation dans le registre de services.

Avant de commencer

Le service de gestionnaire global est fourni par jaxws-2.2, jaxrs-1.1, jaxrs-2.0 ou client jaxrs-2.0, de sorte que vous devez spécifier la fonction suivante ou les combinaisons de fonctions suivantes dans votre fichier server.xml :
  • jaxws-2.2
  • jaxrs-1.1
  • jaxrs-2.0
  • client jaxrs-2.0
  • jaxws-2.2 et jaxrs-1.1
  • jaxws-2.2 et jaxrs-2.0
  • jaxws-2.2 et client jaxrs-2.0

Pourquoi et quand exécuter cette tâche

L'interface Handler SPI fournit différentes propriétés pour indiquer les éléments ENGINE_TYPE, FLOW_TYPE, ainsi que le côté client (IS_CLIENT_SIDE) ou le côté serveur (IS_SERVER_SIDE) où les gestionnaires s'appliquent.

Vous devez implémenter l'interface Handler et enregistrer la classe d'implémentation dans le registre de services.

La documentation d'API Java pour chaque interface SPI Liberty est disponible dans un fichier comprimé distinct dans l'un des sous-répertoires Javadoc du répertoire ${wlp.install.dir}/dev.

Déploiement du bundle gestionnaire

Vous pouvez déployer le bundle gestionnaire à l'aide de WebSphere Application Server Developer Tools for Eclipse .

Procédure

  1. Cliquez sur Fichier > Nouveau > Autre, puis développez OSGi.
  2. Clique sur OSGi Bundle Project et sur Next. La fenêtre New OSGi Bundle Project s'affiche.
  3. Entrez MyHandler comme nom du projet. Dans la liste Target runtime, sélectionnez WebSphere Application Server Liberty. S'il n'existe aucune exécution, cliquez sur New Runtime afin de créer une phase d'exécution WebSphere Application Server Liberty.
  4. Désélectionnez le rapport Add bundle to application.
  5. Cliquez sur Next deux fois et accédez à la page OSGi Bundle.
  6. Dans la page OSGi Bundle, sélectionnez Generate an activator, a Java class that controls the life cycle of the bundle. Conservez la valeur myhandler.Activator  pour Activator name et cliquez sur Finish.
  7. Cliquez sur Window > Preferences > Plug-in Development > Target Platform et sélectionnez WebSphere Application Server Liberty with SPI.
    Remarque : Assurez-vous d'avoir ajouté la phase d'exécution WebSphere Application Server Liberty dans 3.
  8. Cliquez sur Apply et sur OK.
  9. Développez MyHandler > BundleContent > META-INF et ouvrez le fichier MANIFEST.MF à l'aide de l'éditeur de manifeste de plug-in.
  10. Créez les classes MyHander et MyActivitor :
    ...
    import com.ibm.wsspi.webservices.handler.Handler;
    ...
    
    public class MyHandler implements Handler {
        ...
        public void handleFault(GlobalHandlerMessageContext arg0) {
            ...
        }
        public void handleMessage(GlobalHandlerMessageContext msgctxt) throws Exception {
    
            if (msgctxt.getFlowType().equalsIgnoreCase(HandlerConstants.FLOW_TYPE_OUT)) {
                }
            ...
         }
         ....
    }
    public class MyActivator implements BundleActivator {
        ...
        public void start(BundleContext context) throws Exception {
    
              final Hashtable<String, Object> handlerProps = new Hashtable<String, Object>();
               handlerProps.put(HandlerConstants.ENGINE_TYPE, HandlerConstants.ENGINE_TYPE_JAXWS);
               handlerProps.put(HandlerConstants.FLOW_TYPE, HandlerConstants.FLOW_TYPE_IN);
               handlerProps.put(HandlerConstants.IS_CLIENT_SIDE, true);
               handlerProps.put(HandlerConstants.IS_SERVER_SIDE, true);
               handlerProps.put(org.osgi.framework.Constants.SERVICE_RANKING, 3);
               MyHandler myHandler = new MyHandler();
               context.registerService(Handler.class, myHandler, handlerProps);
               ...
            }
            ...
       }
  11. Cliquez sur Fichier > Nouveau > Autre, puis développez OSGi.
  12. Cliquez sur Liberty Feature Project, puis sur Next. La fenêtre Liberty Feature Project s'affiche.
  13. Indiquez MyHandlerFeature comme nom du projet.
  14. Dans la liste Target runtime, sélectionnez WebSphere Application Server Liberty et cliquez sur Next. La page OSGi Bundles Selection s'affiche.
  15. Dans la page OSGi Bundles Selection, sélectionnez MyHandler 1.0.0 pour Contained Bundles et cliquez sur Finish.
  16. Modifiez Manifest:MyHandler dans le projet MyHandler. Cliquez sur l'onglet MANIFEST.MF et ajoutez com.ibm.wsspi.webservices.handler dans l'élément Import-pacakge.
  17. Cliquez avec le bouton droit sur le projet MyHandlerFeature, cliquez sur Install Feature afin d'installer la fonction dans l'exécution Liberty.
  18. Editez le fichier server.xml pour activer MyHandlerFeature :
    <featureManager> ......
    <feature>jsp-2.2</feature>
    <feature>jaxws-2.2</feature> // you can also use one of the following feature or feature combinations: jaxrs-1.1, jaxrs-2.0, jaxrsClient-2.0, 
    jaxws-2.2 and jaxrs-1.1, jaxws-2.2 and jaxrs-2.0, jaxws-2.2 and jaxrsClient-2.0
    <feature>usr:MyHandlerFeature</feature> ......
    </featureManager>

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



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