![[17.0.0.1 以及更新版本]](../ng_v17001plus.gif)
應用程式連結
在安裝在應用程式伺服器中的應用程式可以啟動之前,所有定義在該應用程式中的 Enterprise Bean (EJB) 參照和資源參照,必須連結到定義在應用程式伺服器中的實際構件(Enterprise Bean 或資源)。
應用程式連結及延伸提供方法讓您定義應用程式資源,以及控制各種應用程式行為。應用程式連結可以套用至企業應用程式、Web 應用程式或 EJB 應用程式。
傳統上,這些連結及延伸都在應用程式保存檔內的 XML 檔中指定。例如,Web 應用程式連結可以在 ibm-web-bnd.xml 檔中定義。在 Liberty 17.0.0.1 以及更新版本中,連結及延伸可以在 server.xml 檔中指定,當作應用程式配置的一部分。
Liberty 支援以傳統方法將連結及延伸定義為應用程式的一部分。如果 server.xml 和應用程式中都指定資訊,這兩個來源會合併來建立一組有效的連結或延伸。
server.xml 檔中指定的資訊優先於應用程式構件中指定的同樣資訊。 比方說,如果 ibm-web-bnd.xml 和 server.xml 檔都指定 Web 應用程式的虛擬主機,則會使用 server.xml 檔中指定的值。 如果指定的資訊可能有多個值,則 server.xml 檔中的值會添加到應用程式中的值。 比方說,如果 ibm-application-bnd.xml 檔定義兩個安全角色,而 server.xml 定義一個安全角色,則會使用所有這三個安全角色。 如果 server.xml 檔中定義的安全角色和 ibm-application-bnd.xml 檔中定義的安全角色同名,server.xml 檔中的角色會改寫應用程式中的角色。
<application location="stockPrices.ear">
<web-ext moduleName="stockDisplay" default-error-page="error.html"/>
</application>
同樣地,如果 stockData.jar 檔中定義一個 EJB 應用程式,下列 server.xml 配置會指定資料來源連結:
<application location="stockPrices.ear">
<ejb-jar-bnd moduleName="stockData">
<session name="StockBean">
<data-source name="jdbc/stockDS" binding-name="stockDataSource"/>
</session>
</ejb-jar>
</application>
<webApplication location="stockPrices.ear">
<web-ext default-error-page="error.html"/>
</webApplication>
<ejbApplication location="stockPrices.jar">
<ejb-jar-bnd>
<session name="StockBean">
<data-source name="jdbc/stockDS" binding-name="stockDataSource"/>
</session>
</ejb-jar>
</ejbApplication>
Liberty 執行時期不使用連結及延伸檔中指定的某些元素。 例如,在 Web 應用程式延伸中,重新載入間隔屬性的值會被忽略,因為在 Liberty 中,重新載入行為由 applicationMonitor 配置所控制。 在 server.xml 配置中指定這些元素不會造成錯誤。由於不會有錯誤,因此可能將應用程式連結檔和延伸檔的內容複製到 server.xml 檔。不過,這樣的複製可能導致當您在 WebSphere Developer Tools 中編輯配置時,出現「元素無法辨識」警告。
如需可在 server.xml 檔中指定的連結和延伸完整清單,請參閱 server.xml 檔中的配置元素。
<ejbApplication location="someBean.jar">
<managed-bean-bnd>
<managed-bean class="com.ibm.MyBean">
<resource-ref name="jdbc/myBinding" binding-name="jdbc/TestDataSource" />
</managed-bean>
</managed-bean-bnd>
</ejbApplication>
<application location="myApplication.ear">
<application-ext shared-session-context="false" />
</application>
<application location="myApplication.ear">
<web-bnd moduleName="myWebModule">
<virtual-host name="default_host" />
</web-bnd>
</application>