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

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

Avant de commencer

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 à l'aide d'un programme 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 définir deferServletLoad sur false, démarrer le serveur, générer le plug-in, puis supprimer l'attribut deferServletLoad .

A propos de 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-2.0 si vous configurez un plug-in pour IBM i ou z/OS, ainsi que toutes les autres fonctions requises, sont incluses dans la configuration du serveur.

    Dans l'élément pluginConfiguration du fichier de configuration du serveur, vous pouvez spécifier les attributs webserverPort et webserverSecurePort pour transmettre les demandes à partir du serveur Web. 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 Linux® et les plateformes similaires, si vous êtes un utilisateur non root, vous devez utiliser des numéros de port supérieurs à 1024.

    Pour tous les attributs configurables de l'élément pluginConfiguration , 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 plateformes IBM iPour IBM i et z/OS, incluez la fonction restConnector-2.0 à la place de la fonction localConnector-1.0 . Pour plus de détails, voir Configuration d'une connexion JMX sécurisée à Liberty.

    Pour plateformes IBM iVoici un exemple de fichier de configuration de serveur server.xml pour IBM i et z/OS:
    <server description="new server">
    
    <!-- Enable features -->
      <featureManager>
         <feature>jsp-2.2</feature>
         <feature>restConnector-2.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 pour utiliser SSL, vous devez activer la fonction transportSecurity-1.0 Liberty de 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 magasin de clés qui est utilisé par le plug-in de serveur Web doit être un magasin de clés CMS qui peut être créé à l'aide de l'utilitaire Key Management (iKeyman). Vous ne pouvez pas utiliser le magasin de clés JKS créé par Liberty ou Traditional pour le plug-in de serveur Web, mais vous devez échanger des certificats de signataire entre le magasin de clés du plug-in de serveur Web et le magasin 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 et vos applications Liberty en appelant le bean géré WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig .
    1. En utilisant le même SDK Java que le serveur, exécutez l'utilitaire Java jconsole dans une fenêtre 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 plateformes IBM iPour IBM i et z/OS, exécutez l'utilitaire Java jconsole à partir d'une fenêtre de commande à l'aide du 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 sur les fabriques de sockets SSL WebSphere® Application Server . Cette modification est documentée dans la section Identification et résolution des problèmes SSL de la rubrique relative aux conseils d'identification et de résolution des problèmes.
      5. Dans la même fenêtre de commande, exécutez l'utilitaire Java jconsole .
        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 .
      Pour plateformes IBM iAprès le démarrage de jConsole, sélectionnez Remote Process, et entrez le service JMX URL : service:jmx:rest://<host>:<port>/IBMJMXConnectorREST. Le numéro de port est le port HTTPS. Vous devez également fournir le nom d'utilisateur et le mot de passe.
    3. Localisez le MBean 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 d'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 lui-même 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 qui héberge le serveur Web.
    Pour plateformes IBM iPour IBM i, procédez comme suit:
    1. Exécutez la commande Qshell manageprofiles pour créer un profil http. Par exemple, plugins_root/bin/manageprofiles -create -profileName http -templatePath http.
    2. Copiez le fichier plugin-cfg.xml dans le répertoire config du profil http créé lors de la sous-étape a, par exemple, plugin_profile_root/config/plugin-cfg.xml, et définissez les droits sur le fichier.
    3. Exécutez la commande suivante à partir d'une ligne de commande système pour modifier les droits sur le fichier pour les paramètres requis :
      CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)