Sie können IBM® Rational Asset Manager-Web-Services in Ihren Anwendungen
verwenden.
Informationen zu diesem Vorgang
Achtung: Die Web-Services-API und die HTTP-Mechanismen zum
Hoch- und Herunterladen sind API-intern und werden nicht unterstützt.
Die
Verwendung erfolgt auf Ihr eigenes Risiko.
Rational
Asset Manager publiziert Web-Services, die Ihnen die Arbeit mit dem Repository
ermöglichen.
Verwenden Sie die WSDL-Datei (WSDL = Web Services Descriptor
Language) von
Rational
Asset Manager, um angepasste Anwendungen zu entwickeln, die mit dem
Rational
Asset Manager-Server interagieren.
Vorgehensweise
Gehen Sie wie folgt vor, um unter Verwendung der Web-Services die
Verbindung zum Rational
Asset Manager-Server herzustellen:
- Navigieren Sie zu der Seite Erweiterungen im
Rational
Asset Manager-Web-Client.
- Klicken Sie unter 'Web-Services' auf den Link
RAM1.wsdl, um die WSDL-Datei herunterzuladen.
- Um den Web-Service verwenden zu können, müssen Sie die clientseitigen
Proxys aus der WSDL für die Interaktion mit dem Server generieren.
- Nachdem die Proxys für die WSDL generiert wurden, greifen Sie auf die folgende URL für Web-Services zu:
http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMServices. Dabei ist Server der Hostname des Servers, Port die Portnummer, com.ibm.ram.repository.web.ws.was die Web-Services-Webanwendung und
RAMServices die Position, an der der Web-Service verfügbar ist. Der Client sollte beim Senden des Aufrufs die Umleitung ermöglichen, da
RAMServices den Aufruf automatisch zu der entsprechenden Position
umleitet.
Clients können auf
http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMServices
zugreifen, um die Services abzurufen. Diese einzelne Position zum Aufrufen von
Web-Services leitet den Client, abhängig davon, ob in der Anforderung
Benutzerberechtigungsnachweise vorhanden sind, entweder zu der anonymen
Serverposition unter
http://Server:Port/com.ibm.ram.repository.web.ws.was/services/RAM1
oder zu der Basisauthentifizierungsposition unter
http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1
um.
Wenn Clients bevorzugen, direkt auf die Services zuzugreifen, die auf der
anonymen Anmeldung und der Basisauthentifizierung basieren, kann der Zugriff
unter Verwendung des Endpunkts
http://Server:Port/com.ibm.ram.repository.web.ws.was/services/RAM1
bzw.
http://Server:Port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1
erfolgen.
- Stellen Sie die Verbindung zum Server her:
- Wenn die Verbindung als angemeldeter Benutzer hergestellt werden soll,
geben Sie den Benutzernamen und das Kennwort unter Verwendung der
HTTP-Basisauthentifizierung an.
- Wenn die Verbindung anonym hergestellt werden soll, geben Sie keinen
Benutzernamen und kein Kennwort an.
- Rational Asset
Manager verfügt über ein Lizenzierungsschema, das jedem Benutzer, der die
Verbindung zum Server herstellt, eine Lizenz erteilt. Wenn mehrere Aufrufe
ausgeführt werden und dieselbe Lizenz verwendet werden soll, speichern Sie die
Verbindung zu dem Server zwischen; Ihre Sitzungen verwenden dann weiterhin
dieselbe Lizenz.
- Verwenden Sie die API in der
Rational Asset
Manager-Javadoc, die sich im Referenzabschnitt der Hilfe befindet.
Ergebnisse
Hinweis: Um die Verbindung mithilfe einer sicheren
HTTPS-SSL-Verbindung herzustellen, müssen Sie bestätigen, dass sich der
öffentliche Schlüssel des Servers im Schlüsselring des Clients befindet, damit
HTTPS funktioniert.
Beispiel
Eine Beispielklasse zum Aufrufen von Web-Services:
public class RAMClient {
public static final String RAM_LOCATION = "http://server:port/com.ibm.ram.repository.web.ws.was";
public void doSearchAndDownload() throws Exception {
String SECURE_PREFIX = "/RAMSecure"; // Zu verwenden, wenn Benutzername und Kennwort angegeben werden
String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
String USERNAME = "admin";
String PASSWORD = "admin";
// Web-Services-Stub erstellen
RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
if (ramWebService instanceof Stub) {
Stub axisStub = (Stub) ramWebService;
// Benutzername und Kennwort definieren
axisStub.setUsername(USERNAME);
axisStub.setPassword(PASSWORD);
}
// Konstanten zum Aufrufen der Web-Services abrufen
Constants constants = ramWebService.getConstants();
// Suche nach Assets mit Namen, die mit 'soa' beginnen und deren Eigner der Benutzer 'admin' ist
String[] queries = new String[2];
queries[0] = constants.getQUERY_NAME()+":(soa*)";
queries[1] = constants.getQUERY_OWNER()+":(admin)";
SearchResultSO searchResults = ramWebService.search(queries, null, true,
constants.getSORT_LAST_MODIFIED(), 0, -1, -1, false, Locale.getDefault().toString());
// Bei der Suche gefundene Assets herunterladen
String RAM_ASSET_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/RAMAssetAccess.jsp?";
SearchAssetInformationSO[] searchAssets = searchResults.getSearchAssets();
for (int ac = 0; ac < searchAssets.length; ac++) {
String assetID = searchAssets[ac].getGUID();
String assetVersion = searchAssets[ac].getVersion();
String encodedAssetID = URLEncoder.encode(assetID, "UTF-8");
String encodedAssetVersion = URLEncoder.encode(assetVersion, "UTF-8");
String assetLocation = RAM_ASSET_LOCATION + "assetid="+encodedAssetID+"&version="+encodedAssetVersion;
downloadAssetUsingHTTPGet(assetLocation, USERNAME, PASSWORD);
}
}
private void downloadAssetUsingHTTPGet(String assetLocation, String username, String password) {
// Asset herunterladen
}
}