Configuration du client JAX-RS 2.0

Concernant l'API Java pour XML RESTful Web Services 2.0, vous pouvez configurer le client afin qu'il accède aux noeuds finaux REST. JAX-RS 2.0 introduit une nouvelle API client normalisée grâce à laquelle vous pouvez effectuer des demandes http vers vos services Web RESTful distants.

Pourquoi et quand exécuter cette tâche

Une instance du Client est requise pour accéder à une ressource Web à l'aide de l'API client. L'instance par défaut du client peut être obtenue par l'appel de newClient ou build sur ClientBuilder.

Procédure

  1. Activez la fonction jaxrsClient-2.0 ou jaxrs-2.0 dans votre fichier server.xml :
    <featureManager>
        <feature>jaxrs-2.0</feature>// If you only need the JAX-RS 2.0 client feature, you can enable jaxrsClient-2.0 instead of  jaxrs-2.0 
    </featureManager>
  2. Créez un client JAX-RS 2.0 et envoyez la demande suivante au serveur :
    javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
    
    javax.ws.rs.client.Client c = cb.build();
    String res = null;
    
    try {
    	res = c.target("<Resource_URL>")
                 .path("<PATH>")
                 .request()
                 .get(String.class);
    	} catch (Exception e) {
          	res = "[Error]:" + e.toString();
          } finally {
                c.close();        
          }   
    Pour en savoir plus sur le client JAX-RS 2.0 asynchrone, voir Traitement asynchrone.

Que faire ensuite

  • Utilisez la propriété client com.ibm.ws.jaxrs.client.connection.timeout et la propriété client com.ibm.ws.jaxrs.client.receive.timeout pour définir la valeur de délai.
    • com.ibm.ws.jaxrs.client.connection.timeout
      javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
              cb.property("com.ibm.ws.jaxrs.client.connection.timeout", "1000"); 
              Client c = cb.build();
    • com.ibm.ws.jaxrs.client.receive.timeout
      javax.ws.rs.client.ClientBuilder cb = ClientBuilder.newBuilder();
              cb.property("com.ibm.ws.jaxrs.client.receive.timeout", "1000"); 
              Client c = cb.build();
    Conseil : La valeur de la propriété de délai d'attente est en millisecondes et le type doit être long ou int. Si le type de la valeur n'est pas valide, le message suivant s'affiche :
    CWWKW0700E: La valeur de délai d'attente {0} spécifiée dans la propriété com.ibm.ws.jaxrs.client.receive.timeout côté client JAX-RS n'est pas valide. La valeur par défaut a été appliquée. {3}
  • Utilisez les propriétés client suivantes pour la prise en charge du proxy client :
    ClientBuilder cb = ClientBuilder.newBuilder();
    cb.property("com.ibm.ws.jaxrs.client.proxy.host", "hostname");
    cb.property("com.ibm.ws.jaxrs.client.proxy.port", "8888";);
    cb.property("com.ibm.ws.jaxrs.client.proxy.type", "HTTP");
    
    Client c = cb.build();  
    • com.ibm.ws.jaxrs.client.proxy.host
    • com.ibm.ws.jaxrs.client.proxy.port
      Conseil : La valeur du port du serveur proxy doit être du type Int. La valeur par défaut est 80. Si le type de la valeur n'est pas valide, le message suivant s'affiche :
      CWWKW0701E: La valeur du port de serveur proxy {0} que
      vous avez spécifiée dans la propriété com.ibm.ws.jaxrs.client.proxy.port côté client JAX-RS n'est pas valide.. La valeur par défaut 80 a été appliquée. {3}
    • com.ibm.ws.jaxrs.client.proxy.type
      Conseil : La valeur du type de serveur proxy doit être HTTP ou SOCKS. La valeur par défaut est HTTP. Si le type du serveur proxy n'est pas valide, le message suivant s'affiche :
      CWWKW0702E: La valeur du type de serveur proxy {0} que vous avez spécifiée dans la propriété com.ibm.ws.jaxrs.client.proxy.type côte client JAX-RS n'est pas valide. La valeur par défaut HTTP a été appliquée. {3}
  • Utilisez la propriété client com.ibm.ws.jaxrs.client.ltpa.handler pour définir le cookie SSO et définir la valeur sur true.
    ClientBuilder cb = ClientBuilder.newBuilder();
            Client c = cb.build();
            c.property("com.ibm.ws.jaxrs.client.ltpa.handler", "true");
    Si vous voulez utiliser la fonctionnalité Secure Sockets Layer (SSL) dans JAX-RS 2.0, vous devez activer la fonction ssl-1.0 ou appSecurity-2.0. Pour la fonction de jeton LTPA, la fonction appSecurity-2.0 est nécessaire.

    Pour savoir comment configurer l'environnement pour que le client JAX-RS 2.0 s'exécute avec SSL via IHS, veuillez vous référer à la section Configuring IBM HTTP server SSL support.

    Remarque : La fonction ssl-1.0 est une sous-fonction de la fonction appSecurity-2.0. Si vous activez la fonction jaxrsClient-2.0 et la fonction ssl-1.0, la fonction appSecurity-2.0 est activée automatiquement.
  • Utilisez la propriété client com.ibm.ws.jaxrs.client.ssl.config pour définir l'ID de référence SSL de server.xml.
    ClientBuilder cb = ClientBuilder.newBuilder();
            cb.property("com.ibm.ws.jaxrs.client.ssl.config", "mySSLRefId"); 
            Client c = cb.build();
    Pour en savoir plus sur l'établissement d'une relation de confiance via l'extraction du certificat du fichier de clé IHS et son ajout au fichier JKS Liberty, voir Create a key database file and certificates needed to authenticate the Web server during an SSL handshake.
    Remarque : La configuration définie dans le fichier server.xml se présente comme suit :
    <ssl id="mySSLRefId" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore" />
  • Utilisez la propriété client com.ibm.ws.jaxrs.client.disableCNCheck pour désactiver la vérification de nom usuel.
    ClientBuilder cb = ClientBuilder.newBuilder();
    cb.property("com.ibm.ws.jaxrs.client.disableCNCheck", true);

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

Nom du fichier : twlp_jaxrs2.0_clientconfig.html