Puede utilizar los servicios web
de IBM® Rational Asset Manager en las
aplicaciones.
Acerca de esta tarea
Atención: La API de servicios web y el mecanismo de carga y descarga de HTTP
son API internas y no están soportadas.
Utilícelas bajo su propia responsabilidad.
Rational Asset
Manager publica servicios web que permiten trabajar con el repositorio.
Utilice el archivo del Lenguaje de descriptor de servicios web (WSDL) de Rational Asset Manager para desarrollar aplicaciones personalizadas que interactúen con el servidor
Rational Asset Manager.
Procedimiento
Para conectarse al servidor Rational Asset
Manager utilizando los servicios web:
- Navegue hasta la página Ampliaciones en el cliente
web de Rational Asset Manager.
- En servicios web, pulse en el enlace RAM1.wsdl para descargar el archivo
WSDL.
- Para utilizar el servicio web, debe generar los proxies del lado del cliente desde el WSDL para
interactuar con el servidor.
- Cuando se hayan generado los proxies para el WSDL, acceda al URL siguiente
de servicios web: http://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMServices,
donde servidor es el nombre de host del servidor, puerto es el número
de puerto, com.ibm.ram.repository.web.ws.was es la aplicación web de los servicios
web y RAMServices es la ubicación donde el servicio web está disponible. El cliente debería habilitar el
redireccionamiento cuando se hace una llamada, ya que los servicios RAMServices se redirigen automáticamente a la llamada en la ubicación adecuada.
Los clientes puede acceder a http://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMServices para obtener los servicios. Esta única
ubicación para invocar los servicios web redirigirá el cliente a la ubicación del servidor
anónimo en http://servidor:puerto/com.ibm.ram.repository.web.ws.was/services/RAM1 o a la ubicación de autenticación
básica en http://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1, según la presencia de
credenciales de usuario en la petición.
Si los clientes prefieren acceder directamente a los servicios basados en
autenticación básica y anónima, pueden hacerlo utilizando los puntos finales
http://servidor:puerto/com.ibm.ram.repository.web.ws.was/services/RAM1 yhttp://servidor:puerto/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1 respectivamente.
- Conecte al servidor:
- Si quiere conectar como usuario conectado, proporcione el nombre de usuario y contraseña
utilizando la autenticación básica HTTP.
- Si quiere conectar de forma anónima, no proporcione nombre de usuario y contraseña.
- Rational Asset
Manager tiene un esquema de licencias que proporciona una licencia por cada usuario que se conecta al
servidor. Si hace múltiples invocaciones y quiere mantener la misma memoria caché de licencia, la conexión
al servidor y sus sesiones mantendrán la misma licencia.
- Utilice la API que se encuentra en el Javadoc de Rational Asset
Manager, ubicado en la sección Referencia de la ayuda.
Resultados
Recuerde: Para conectar utilizando una conexión segura SSL HTTPS,
confirme que la clave pública fuera del servidor se encuentra en el conjunto de claves del
cliente para que HTTPS funciones.
Ejemplo
Una clase de ejemplo para la invocación de servicios:
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"; // To be used when username and password are provided
String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
String USERNAME = "admin";
String PASSWORD = "admin";
// Construct WebSerivces stub
RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
if (ramWebService instanceof Stub) {
Stub axisStub = (Stub) ramWebService;
// Set user name and password
axisStub.setUsername(USERNAME);
axisStub.setPassword(PASSWORD);
}
// Get constants for invoking WebServices
Constants constants = ramWebService.getConstants();
// Search for assets with name starting with 'soa' and owned by 'admin' user.
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());
// Download assets got from search
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) {
// Download asset
}
}