Globale Handler für Web-Services hinzufügen

Komponenten, die Web-Service-Handler in allen Web-Service-Endpunkten registrieren müssen, müssen die Schnittstelle Handler implementieren und diese Implementierung in der Service-Registry registrieren.

Vorbereitende Schritte

Der globale Handler-Service wird von jaxws-2.2, jaxrs-1.1, jaxrs-2.0 oder jaxrs-2.0 client bereitgestellt. Deshalb müssen Sie das folgende bzw. die folgenden Featurekombinationen in Ihrer Datei server.xml angeben:
  • jaxws-2.2
  • jaxrs-1.1
  • jaxrs-2.0
  • jaxrs-2.0 client
  • jaxws-2.2 und jaxrs-1.1
  • jaxws-2.2 und jaxrs-2.0
  • jaxws-2.2 und jaxrs-2.0 client

Informationen zu diesem Vorgang

Die SPI Handler stellt verschiedene Eigenschaften bereit, um den ENGINE_TYPE und den FLOW_TYPE anzugeben sowie die Cientseite (IS_CLIENT_SIDE) oder die Serverseite (IS_SERVER_SIDE), auf der die Handler wirksam werden sollen.

Sie müssen die Schnittstelle Handler implementieren und die Implementierung in der Service-Registry registrieren.

Die Java-API-Dokumentation für die einzelnen Liberty-SPIs ist in jeweils einer komprimierten Datei in einem der Javadoc-Unterverzeichnisse des Verzeichnisses ${wlp.install.dir}/dev enthalten.

Handler-Bundle implementieren

Sie können das Handler-Bundle mit den WebSphere Application Server Developer Tools for Eclipse implementieren.

Vorgehensweise

  1. Klicken Sie auf Datei > Neu > Andere. Erweitern Sie dann die Anzeige für OSGi.
  2. Klicken Sie auf OSGi-Bundle-Projekt und dann auf Weiter. Das Fenster Neues OSGi-Bundle-Projekt wird geöffnet.
  3. Geben Sie als Projektnamen MyHandler ein. Wählen Sie WebSphere Application Server Liberty in der Liste der Ziellaufzeitumgebungen aus. Wenn keine Laufzeit vorhanden ist, klicken Sie auf Neue Laufzeit, um eine WebSphere(r) Application Server-Liberty-Laufzeit zu erstellen.
  4. Entfernen Sie die Markierung für das Optionsfeld Paket zur Anwendung hinzufügen.
  5. Klicken Sie zweimal auf Weiter und öffnen Sie die Seite OSGi-Bundle.
  6. Markieren Sie auf der Seite OSGi-Bundle die Option Generieren eines Aktivators, also einer Java-Klasse zur Steuerung des Lebenszyklus des Bundle. Übernehmen Sie für Aktivatorname den Namen myhandler.Activator und klicken Sie auf Fertigstellen.
  7. Klicken Sie auf Fenster > Benutzervorgaben > Plug-in-Entwicklung > Zielplattform und wählen Sie WebSphere Application Server Liberty mit SPI aus.
    Anmerkung: Vergewissern Sie sich, dass Sie die WebSphere Application Server-Liberty-Laufzeit in Schritt 3 hinzugefügt haben.
  8. Klicken Sie auf Anwenden und auf OK.
  9. Erweitern Sie die Anzeige für MyHandler > BundleContent > META-INF und öffnen Sie die Datei MANIFEST.MF im Plug-in-Manifesteditor.
  10. Erstellen Sie wie folgt die Klassen MyHander und 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. Klicken Sie auf Datei > Neu > Andere. Erweitern Sie dann die Anzeige für OSGi.
  12. Klicken Sie auf Liberty-Featureprojekt und dann auf Weiter. Das Fenster Liberty-Featureprojekt wird geöffnet.
  13. Geben Sie als Projektnamen MyHandlerFeature an.
  14. Wählen Sie WebSphere Application Server Liberty in der Liste der Ziellaufzeitumgebungen aus und klicken Sie auf Weiter. Die Auswahlseite für OSGi-Bundles wird geöffnet.
  15. Wählen Sie auf der Auswahlseite für OSGi-Bundles den Eintrag MyHandler 1.0.0 für Enthaltene Bundles aus. Klicken Sie dann auf Fertigstellen.
  16. Modifizieren Sie Manifest:MyHandler im Projekt MyHandler. Klicken Sie auf das Register MANIFEST.MF und fügen Sie com.ibm.wsspi.webservices.handler zum Element Import-package hinzu.
  17. Klicken Sie mit der rechten Maustaste auf das Projekt MyHandlerFeature und wählen Sie Funktionen installieren aus, um das Feature in der Liberty-Laufzeit zu installieren.
  18. Bearbeiten Sie die Datei server.xml, um MyHandlerFeature zu aktivieren:
    <featureManager> ......
    <feature>jsp-2.2</feature>
    <feature>jaxws-2.2</feature> // Es kann auch eines folgenden Features bzw. eine der folgenden Featurekombinationen verwendet werden:
    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>

Symbol das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_web_services_global_handlers
Dateiname: twlp_web_services_global_handlers.html