Génération du fichier plugin-cfg.xml à l'aide d'un MBean

Vous pouvez générer le fichier plugin-cfg.xml pour le serveur Web en appelant le MBean WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig.

Avant de commencer

[16.0.0.3 and later]A partir de la version 16.0.0.3, vous n'avez plus besoin de générer le fichier plugin-cfg.xml. Le produit génère le fichier à votre place. Voir Génération automatique du fichier plugin-cfg.xml.

Si une application modifie par programmation la configuration du cookie de session en utilisant les API Java Servlet 3.0, elle doit être initialisée avant de générer le fichier plugin-cfg.xml. Sinon, l'attribut AffinityCookie défini pour cette application risque d'être incorrect. Pour éviter ce problème, vous pouvez associerdeferServletLoad à la valeur false, démarrer le serveur, générer le plug-in, puis supprimer l'attribut deferServletLoad.

Pourquoi et quand exécuter cette tâche

Un plug-in de serveur Web est utilisé pour transférer les demandes HTTP d'un serveur Web pris en charge vers un ou plusieurs serveurs d'applications. A la réception d'une demande, le plug-in vérifie celle-ci par rapport aux données de configuration figurant dans le fichier plugin-cfg.xml. Les données de configuration mappent l'URI de la demande HTTP au nom d'hôte d'un serveur d'applications. Le plug-in utilise ensuite ces informations pour transférer la demande vers le serveur d'applications.

Procédure

  1. Démarrez le serveur qui héberge vos applications et vérifiez que la fonction localConnector-1.0 pour les plateformes IBM®i et z/OS, ou la fonction restConnector-1.0, si vous configurez un plug-in pour l'IBM i ou z/OS, ainsi que toute autre fonction requise, sont incluses dans la configuration du serveur.

    Pour le transfert des demandes depuis un serveur Web, vous pouvez spécifier les attributs webserverPort et webserverSecurePort dans l'élément pluginConfiguration. Par défaut, la valeur de webserverPort est 80 et celle de webserverSecurePort est 443. Vous pouvez cependant changer ces réglages. Par exemple, pour les plateformes Linux et apparentées, si vous êtes un utilisateur non root, vous devez utiliser des numéros de port supérieurs à 1024.

    Pour prendre connaissance de tous les attributs de l'élément pluginConfiguration pouvant être configurés, voir Java Servlets 3.1.

    Voici un exemple de fichier de configuration server.xml :
    <server description="new server">
     <featureManager>
       <feature>localConnector-1.0</feature>
       <feature>jsp-2.2</feature>
     </featureManager>
      
    <keyStore id="defaultKeyStore" password="{xor}PGY6bW4wOyw+" />
    
     <httpEndpoint id="defaultHttpEndpoint"
                     host="*"
                     httpPort="9080">
              <tcpOptions soReuseAddr="true" />
         </httpEndpoint>
    
     <pluginConfiguration webserverPort="80" 
                          webserverSecurePort="443" 
                          sslKeyringLocation="path/to/sslkeyring"
                          sslStashfileLocation="path/to/stashfile" 
                          sslCertlabel="definedbyuser"/>
    
     <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war" />
     <application type="war" id="snoop" name="snoop" location="${server.config.dir}/apps/snoop.war" />
    </server>

    Pour l'IBM i et z/OS, incluez la fonction restConnector-1.0 au lieu de la fonction localConnector-1.0. Pour plus de détails, voir Configuration d'une connexion JMX sécurisée à Liberty.

    Voici un exemple de fichier de configuration de serveur server.xml pour l'IBM i et z/OS :
    <server description="new server">
    
    <!-- Enable features -->
      <featureManager>
         <feature>jsp-2.2</feature>
         <feature>restConnector-1.0</feature>
      </featureManager>
    
    <keyStore id="defaultKeyStore" password="{xor}PGY6bW4wOyw+" />
    
     <httpEndpoint id="defaultHttpEndpoint"
                     host="*"
                     httpPort="9080"
                     httpsPort="9443">
              <tcpOptions soReuseAddr="true" />
         </httpEndpoint>
    
    <quickStartSecurity userName="testuser"
     			userPassword="security" /> 
    
     <pluginConfiguration webserverPort="80" 
                          webserverSecurePort="443" 
                          sslKeyringLocation="path/to/sslkeyring"
                          sslStashfileLocation="path/to/stashfile" 
                          sslCertlabel="definedbyuser"/>
    
     <application type="war" id="myapp" name="myapp" location="${server.config.dir}/apps/myapp.war" />
     <application type="war" id="snoop" name="snoop" location="${server.config.dir}/apps/snoop.war" />
    </server>
    Remarque :
    • Si vous configurez le plug-in de serveur Web en vue de l'utilisation de SSL, vous devez activer la fonction Liberty ssl-1.0 dans Liberty.
    • Si le serveur Web utilise les ports par défaut, il n'est pas nécessaire d'inclure l'élément pluginConfiguration dans le fichier server.xml.
    • Le fichier de clés qui est utilisé par le plug-in de serveur Web doit être un fichier de clés certifiées CMS qui peut être créé à l'aide de l'utilitaire Key Management (iKeyman). Vous ne pouvez pas utiliser le fichier de clés JKS créé par Liberty ou la version traditionnelle pour le plug-in de serveur Web, bien que vous deviez échanger les certificats de signataire entre le fichier de clés du plug-in de serveur Web et le fichier de clés Liberty.
    • Pour configurer l'emplacement du fichier journal du plug-in, ajoutez le fragment de code suivant au fichier server.xml dans l'élément pluginConfiguration :
      logDirLocation="/path/to/log/file/"
  2. Générez le fichier plugin-cfg.xml pour votre serveur Liberty et vos applications en appelant le bean géré WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig.
    1. Avec le même SDK Java que le serveur, exécutez l'utilitaire Java jconsole dans une invite de commande.
      Par exemple, exécutez la commande suivante :
      c:\java\bin\jconsole
      Le processus du serveur est répertorié dans les choix en attente de connexion.
      Pour l'IBM i et z/OS, exécutez l'utilitaire jconsole Java à partir d'une fenêtre de commande en utilisant le SDK Java installé avec le WCT sur votre poste de travail. Par exemple, procédez comme suit :
      1. Créez le répertoire C:\restClient sur votre poste de travail.
      2. Copiez ${wlp.install.dir}/clients/restConnector.jar dans le répertoire C:\restClient de votre poste de travail.
      3. Copiez ${server.output.dir}/resources/security/key.jks dans le répertoire C:\restClient de votre poste de travail.
      4. Dans une fenêtre de commande, saisissez SET JAVA_HOME=wct_root\java.
        Remarque : Veillez à modifier temporairement wct_root\java\jre\lib\security\java.security en mettant en commentaire les deux lignes qui définissent les fabriques de sockets SSL pour les remplacer par les fabriques de sockets SSL de WebSphere Application Server. Cette modification est documentée dans la section relative au traitement des incidents SSL de la rubrique sur l'identification et la résolution des incidents.
      5. A partir de la même fenêtre de commande, exécutez l'utilitaire jconsole Java.
        Par exemple, exécutez la commande suivante :
        "%JAVA_HOME%"\bin\jconsole -J-Djava.class.path="%JAVA_HOME%"\lib\jconsole.jar;"%JAVA_HOME%"\lib\tools.jar;
        C:\restClient\restConnector.jar -J-Djavax.net.ssl.trustStore=C:\restClient\key.jks
         -J-Djavax.net.ssl.trustStorePassword=Liberty -J-Djavax.net.ssl.trustStoreType=jks
        Vous devrez peut-être également avoir besoin du paramètre suivant :
        -J-Dcom.ibm.ws.jmx.connector.client.disableURLHostnameVerification=true
    2. Connectez-vous à votre serveur, puis cliquez sur l'onglet MBeans.
    3. Localisez le bean géré com.ibm.ws.jmx.mbeans.generatePluginConfig sous le domaine WebSphere.
    4. Appelez l'opération generateDefaultPluginConfig pour générer le fichier plugin-cfg.xml, ou appelez l'opération generatePluginConfig pour personnaliser le répertoire racine de l'installation et le nom du serveur avant de générer le fichier plugin-cfg.xml.
    Voici un exemple de fichier plugin-cfg.xml :
    <?xml version="1.0" encoding="UTF-8"?>
    <Config ASDisableNagle="false" AcceptAllContent="false" AppServerPortPreference="HostHeader" 
            ChunkedResponse="false" FIPSEnable="false" IISDisableNagle="false" 
            IISPluginPriority="High" IgnoreDNSFailures="false" RefreshInterval="60" 
            ResponseChunkSize="64" SSLConsolidate="false" SSLPKCSDriver="REPLACE" 
            SSLPKCSPassword="REPLACE" TrustedProxyEnable="false" VHostMatchingCompat="false">
       <Log LogLevel="Error" Name=".\logs\defaultServer\http_plugin.log"/>
       <Property Name="ESIEnable" Value="true"/>
       <Property Name="ESIMaxCacheSize" Value="1024"/>
       <Property Name="ESIInvalidationMonitor" Value="false"/>
       <Property Name="ESIEnableToPassCookies" Value="false"/>
       <Property Name="PluginInstallRoot" Value="."/>
       <VirtualHostGroup Name="default_host">
             <VirtualHost Name="*:80"/>
             <VirtualHost Name="*:443"/>
             <VirtualHost Name="*:9080"/>
         </VirtualHostGroup>
     <ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true" 
                    LoadBalance="Round Robin" Name="defaultServer_default_node_Cluster" 
                    PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true" 
                    RetryInterval="60">
          <Server CloneID="b564bdc7-2c27-4a4b-ad37-9213c66e60d1" ConnectTimeout="0" 
                  ExtendedHandshake="false" MaxConnections="-1" Name="default_node_defaultServer0" 
                  ServerIOTimeout="900" WaitForContinue="false">
              <Transport Hostname="somehost.example.com" Port="9080" Protocol="http"/>
             </Server>
          <PrimaryServers>
              <Server Name="default_node_defaultServer0"/>
             </PrimaryServers>
        </ServerCluster>
     <UriGroup Name="default_host_defaultServer_default_node_Cluster_URIs">
          <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/myapp/*"/>
          <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*"/>
        </UriGroup>
     <Route ServerCluster="defaultServer_default_node_Cluster" 
            UriGroup="default_host_defaultServer_default_node_Cluster_URIs" 
            VirtualHostGroup="default_host"/>
    </Config>
    Le fichier plugin-cfg.xml est généré dans le répertoire ${server.output.dir}.
    Remarque :
    • Vous pouvez utiliser l'utilitaire jConsole avec Liberty. Toutefois, tout problème lié à l'utilitaire doit être signalé à votre fournisseur de SDK Java.
    • L'interface de gestion du bean géré WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig est com.ibm.websphere.webcontainer.GeneratePluginConfigMBean.
  3. Copiez le fichier plugin-cfg.xml sur la machine hôte du serveur Web.

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

Nom du fichier : twlp_generate_plugin_cfg_xml_mbean.html