Datei "plugin-cfg.xml" mithilfe einer MBean generieren

Sie können die Datei plugin-cfg.xml für den Web-Server generieren, indem Sie die MBean WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig aufrufen.

Vorbereitungen

Ab 16.0.0.3 müssen Sie die Datei plugin-cfg.xml nicht mehr generieren. Das Produkt generiert die Datei automatisch. Siehe Automatische Generierung der Datei plugin-cfg.xml.

Wenn eine Anwendung die Sitzungscookiekonfiguration mit Servlet 3.0-APIs programmgesteuert ändert, muss die Anwendung initialisiert werden, bevor die Datei plugin-cfg.xml generiert wird. Andernfalls kann das Attribut AffinityCookie, das für die betreffende Anwendung definiert wird, falsch sein. Sie können dieses Problem vermeiden, indem Sie deferServletLoad auf falsesetzen, den Server starten, das Plug-in generieren und dann das Attribut deferServletLoad entfernen.

Informationen zu dieser Task

Ein Web-Server-Plug-in wird verwendet, um HTTP-Anforderungen von einem unterstützten Web-Server an einen oder mehrere Anwendungsserver weiterzuleiten. Das Plug-in prüft eine Anforderung anhand der in der Datei plugin-cfg.xml enthaltenen Konfigurationsdaten. In den Konfigurationsdaten ist der URI für die HTTP-Anforderung dem Hostnamen eines Anwendungsservers zugeordnet. Diese Informationen werden vom Web-Server-Plug-in verwendet, um die Anforderung an den Anwendungsserver weiterzuleiten.

Vorgehensweise

  1. Starten Sie den Server, der Ihre Anwendungen hostet, und stellen Sie sicher, dass das Feature localConnector-1.0 für IBM®i und z/OS® oder das Feature restConnector-2.0 , wenn Sie ein Plug-in für IBM i oder z/OSkonfigurieren, und alle anderen erforderlichen Features in der Serverkonfiguration enthalten sind.

    Im Element pluginConfiguration der Serverkonfigurationsdatei können Sie die Attribute webserverPort und webserverSecurePort angeben, damit Anforderungen aus dem Web-Server weitergeleitet werden. Standardmäßig hat das Attribut webserverPort den Wert 80 und das Attribut webserverSecurePort den Wert 443. Vielleicht möchten Sie diese Einstellungen aber ändern. Wenn Sie beispielsweise für Linux® und ähnliche Plattformen ein Benutzer ohne Rootberechtigung sind, müssen Sie Portnummern größer als 1024 verwenden.

    Informationen zu allen konfigurierbaren Attributen des Elements pluginConfiguration finden Sie unter Java Servlets 3.1.

    Nachfolgend ist ein Beispiel für eine Serverkonfigurationsdatei server.xml dargestellt:
    <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>

    Für IBM i-PlattformenFür IBM i und z/OSschließen Sie das Feature restConnector-2.0 anstelle des Features localConnector-1.0 ein. Details finden Sie unter Sichere JMX-Verbindung zu Liberty konfigurieren.

    Für IBM i-PlattformenDas folgende Beispiel zeigt eine server.xml -Serverkonfigurationsdatei für IBM i und 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>
    Hinweis:
    • Wenn Sie das Web-Server-Plug-in für die Verwendung von SSL konfigurieren, müssen Sie das Feature transportSecurity-1.0 Liberty von Libertyaktivieren.
    • Wenn der Web-Server die Standardports verwendet, müssen Sie das Element pluginConfiguration nicht in die Datei server.xml aufnehmen.
    • Der Keystore, der vom Web-Server-Plug-in verwendet wird, muss ein CMS-Keystore sein, der mit dem Dienstprogramm "Key Management" (iKeyman) erstellt werden kann. Sie können den von Liberty oder WebSphere Application Server Traditional erstellten JKS-Keystore nicht für das Web-Server-Plug-in verwenden, obwohl Sie Unterzeichnerzertifikate zwischen dem Keystore des Web-Server-Plug-ins und dem Liberty -Keystore austauschen müssen.
    • Fügen Sie der Datei server.xml im Element pluginConfiguration das folgende Code-Snippet hinzu, um die Position der Plug-in-Protokolldatei zu konfigurieren:
      logDirLocation=/path/to/log/file/
  2. Generieren Sie die Datei plugin-cfg.xml für Ihren Liberty -Server und Ihre Anwendungen, indem Sie die MBean WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig aufrufen.
    1. Verwenden Sie dasselbe Java SDK wie auf dem Server und führen Sie das Java-Dienstprogramm jconsole in einem Befehlsfenster aus.
      Führen Sie beispielsweise den folgenden Befehl aus:
      c:\java\bin\jconsole
      Der Serverprozess wird in den Auswahlmöglichkeiten aufgelistet, die auf eine Verbindung warten.
      Für IBM i-PlattformenFühren Sie für IBM i und z/OSdas Java-Dienstprogramm 'jconsole' in einem Befehlsfenster aus, indem Sie das Java SDK verwenden, das mit WCT auf Ihrer Workstation installiert wurde. Führen Sie z. B. die folgenden Schritte aus:
      1. Erstellen Sie auf Ihrer Workstation das Verzeichnis C:\restClient.
      2. Kopieren Sie ${wlp.install.dir}/clients/restConnector.jar in das Verzeichnis C:\restClient auf Ihrer Workstation.
      3. Kopieren Sie ${server.output.dir}/resources/security/key.jks in das Verzeichnis C:\restClient auf Ihrer Workstation.
      4. Geben Sie in einem Befehlsfenster SET JAVA_HOME=wct_root\java ein.
        Anmerkung: Stellen Sie sicher, dass Sie die Datei wct_root\java\jre\lib\security\java.security vorübergehend ändern, indem Sie die beiden Zeilen, die die SSL-Socket-Factorys auf die SSL-Socket-Factorys von WebSphere® Application Server setzen, auf Kommentar setzen. Diese Änderung ist im Abschnitt Fehlerbehebung für SSL des Abschnitts mit Tipps zur Fehlerbehebung dokumentiert.
      5. Führen Sie in demselben Befehlsfenster das Java-Dienstprogramm jconsole aus.
        Führen Sie beispielsweise den folgenden Befehl aus:
        "%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
        Eventuell müssen Sie auch den folgenden Parameter angeben:
        -J-Dcom.ibm.ws.jmx.connector.client.disableURLHostnameVerification=true
    2. Stellen Sie eine Verbindung zu Ihrem Server her und klicken Sie auf die Registerkarte MBeans .
      Für IBM i-PlattformenNachdem jConsole gestartet wurde, wählen Sie "Remote Process" aus und geben Sie den JMX-Dienst URL : service:jmx:rest://<host>:<port>/IBMJMXConnectorREST ein. Geben Sie als Portnummer die Nummer des HTTPS-Ports an. Sie müssen auch den Benutzernamen und das Kennwort angeben.
    3. Suchen Sie die MBean com.ibm.ws.jmx.mbeans.generatePluginConfig in der Domäne WebSphere .
    4. Rufen Sie die Operation generateDefaultPluginConfig auf, um die Datei plugin-cfg.xml zu generieren, oder rufen Sie die Operation generatePluginConfig auf, um das Installationsstammverzeichnis und den Servernamen anzupassen, bevor Sie die Datei plugin-cfg.xml generieren.
    Nachfolgend ist ein Beispiel der Datei plugin-cfg.xml dargestellt:
    <?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>
    
    Die Datei plugin-cfg.xml wird im Verzeichnis ${server.output.dir} erstellt.
    Hinweis:
    • Sie können das Dienstprogramm jConsole mit Libertyverwenden. Alle Probleme mit dem Dienstprogramm selbst müssen jedoch an Ihren Java SDK-Provider gemeldet werden.
    • Die Managementschnittstelle für die MBean WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig ist com.ibm.websphere.webcontainer.GeneratePluginConfigMBean.
  3. Kopieren Sie die Datei plugin-cfg.xml auf die Maschine, auf der sich der Web-Server befindet.
    Für IBM i-PlattformenFühren Sie für IBM idie folgenden Schritte aus:
    1. Führen Sie den Qshell-Befehl manageprofiles aus, um ein HTTP-Profil zu erstellen. Zum Beispiel plugins_root/bin/manageprofiles -create -profileName http -templatePath http.
    2. Kopieren Sie die Datei plugin-cfg.xml in das Verzeichnis config des HTTP-Profils, das in Unterschritt a erstellt wurde, z. B. plugin_profile_root/config/plugin-cfg.xml, und definieren Sie die Dateiberechtigungen.
    3. Führen Sie in einer Systembefehlszeile den folgenden Befehl aus, um die Dateiberechtigungen in die erforderlichen Einstellungen zu ändern:
      CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)