使用 MBean 來產生 plugin-cfg.xml 檔
您可以呼叫 WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean,為 Web 伺服器產生 plugin-cfg.xml 檔。
開始之前
從 16.0.0.3 開始,您不再需要產生 plugin-cfg.xml 檔。 產品會替您產生這個檔案。 請參閱 自動產生 plugin-cfg.xml 檔。
如果應用程式利用 Servlet 3.0 API,以程式設計方式來修改階段作業 Cookie 配置,在產生 plugin-cfg.xml 檔之前,必須先將應用程式起始設定。 否則,針對這個應用程式來定義的 AffinityCookie 屬性會發生錯誤。 如果要避免這個問題,您可以將 deferServletLoad 設為 false、啟動伺服器、產生外掛程式,然後移除 deferServletLoad 屬性。
關於這項作業
Web 伺服器外掛程式用來將 HTTP 要求從支援的 Web 伺服器轉遞給一或多部應用程式伺服器。 外掛程式會取得要求,並對照 plugin-cfg.xml 檔中的配置資料來檢查要求。 配置資料會將 HTTP 要求的 URI 對映至應用程式伺服器的主機名稱。 之後,Web 伺服器外掛程式會利用這個資訊,將要求轉遞給應用程式伺服器。
程序
- 啟動代管應用程式的伺服器,確定已將 localConnector-1.0 特性(IBM® i 和 z/OS® 平台)或 restConnector-1.0 特性(如果您是配置 IBM i 或 z/OS 的外掛程式),以及任何其他必要的特性併入伺服器配置中。
在伺服器配置檔的 pluginConfiguration 元素中,您可以指定 webserverPort 和 webserverSecurePort 屬性來轉遞 Web 伺服器發出的要求。 依預設,webserverPort 值是 80,webserverSecurePort 值是 443。 不過,您可能會想要變更這些設定。 比方說,如果是 Linux 和類似的平台,且您是非 root 使用者,您必須使用大於 1024 的埠號。
關於 pluginConfiguration 元素的所有可配置的屬性,請參閱 Java Servlets 3.1。
以下是 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>
對於 IBM i 和 z/OS,請併入 restConnector-1.0 特性,而不是 localConnector-1.0 特性。 如需詳細資料,請參閱配置通往 Liberty 的安全 JMX 連線。
以下是適用於 IBM i 和 z/OS 的 server.xml 伺服器配置檔範例:
<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>
註:- 如果您配置 Web 伺服器外掛程式來使用 SSL,您必須啟用 Liberty 的 ssl-1.0 Liberty 特性。
- 如果 Web 伺服器使用預設埠,您不需要在 server.xml 檔中併入 pluginConfiguration 元素。
- Web 伺服器外掛程式所用的金鑰儲存庫必須是可以利用「金鑰管理 (iKeyman)」公用程式來建立的 CMS 金鑰儲存庫。 您無法將 Liberty 或 traditional 所建立的 JKS 金鑰儲存庫用於 Web 伺服器外掛程式,但您必須在 Web 伺服器外掛程式金鑰儲存庫和 Liberty 金鑰儲存庫之間交換簽章者憑證。
- 如果要配置外掛程式日誌檔的位置,請新增下列程式碼 Snippet 到 server.xml 檔中的 pluginConfiguration 元素內:
logDirLocation="/path/to/log/file/"
- 呼叫 WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean,來產生 Liberty 伺服器和應用程式的 plugin-cfg.xml 檔。
- 利用與伺服器相同的 Java SDK,在指令視窗中執行 jconsole Java 公用程式。 例如,執行下列指令:伺服器程序會列在等待連線的選項中。
c:\java\bin\jconsole
對於 IBM i 和 z/OS,請利用隨 WCT 安裝在工作站的 Java SDK,從指令視窗執行 jconsole Java 公用程式。 例如,完成下列步驟:
- 在工作台上,建立 C:\restClient 目錄。
- 將 ${wlp.install.dir}/clients/restConnector.jar 複製到工作台的 C:\restClient 目錄。
- 將 ${server.output.dir}/resources/security/key.jks 複製到工作台的 C:\restClient 目錄。
- 在指令視窗中,輸入 SET JAVA_HOME=wct_root\java。註: 請確定您暫時修改了 wct_root\java\jre\lib\security\java.security,作法是註銷將 SSL Socket Factory 設為 WebSphere® Application Server SSL Socket Factory 的那兩行。這項修改記載在疑難排解提示主題的 SSL 疑難排解小節中。
- 從相同的指令視窗中,執行 jconsole Java 公用程式。
例如,執行下列指令:
您也可能需要下列參數:"%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
-J-Dcom.ibm.ws.jmx.connector.client.disableURLHostnameVerification=true
- 連接到您的伺服器,然後按一下 MBean 標籤。
jConsole 啟動之後,請選取遠端程序,然後輸入 JMX 服務 URL:service:jmx:rest://<host>:<port>/IBMJMXConnectorREST。 埠號是 HTTPS 埠。 另外,您也必須提供使用者名稱和密碼。
- 在 WebSphere 網域之下,尋找 com.ibm.ws.jmx.mbeans.generatePluginConfig MBean。
- 呼叫 generateDefaultPluginConfig 作業來產生 plugin-cfg.xml 檔,或在產生 plugin-cfg.xml 檔之前,呼叫 generatePluginConfig 作業來自訂安裝根目錄和伺服器名稱。
plugin-cfg.xml 檔是產生在 ${server.output.dir} 目錄中。<?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>
註:- 您可以搭配 Liberty 來使用 jConsole 公用程式。不過,公用程式本身若有任何問題,都必須向 Java SDK 提供者報告。
- WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean 的管理介面是 com.ibm.websphere.webcontainer.GeneratePluginConfigMBean。
- 利用與伺服器相同的 Java SDK,在指令視窗中執行 jconsole Java 公用程式。
- 將 plugin-cfg.xml 檔複製到管理 Web 伺服器的機器。
若為 IBM i,請完成下列步驟:
- 執行 manageprofiles Qshell 指令來建立 HTTP 設定檔。 例如,plugins_root/bin/manageprofiles -create -profileName http -templatePath http.
- 將 plugin-cfg.xml 檔複製到子步驟 a 所建立之 HTTP 設定檔的 config 目錄中,例如 plugin_profile_root/config/plugin-cfg.xml,然後設定檔案許可權。
- 從系統指令行執行下列指令,將檔案權限變更為所需要的設定:
CHGAUT USER(QEJBSVR QTMHHTTP QNOTES) OBJ('plugin_profile_root/config/plugin-cfg.xml') DTAAUT(*RWX)


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_generate_plugin_cfg_xml_mbean
檔名:twlp_generate_plugin_cfg_xml_mbean.html