2017-09-26 52 views
2

訪問碼頭服務器的XML中指定的配置我有一個碼頭服務器,我想配置HTTPS流量,我可以做到這一點,只是簡單地修改了一些XML和ini文件(因爲這個IoC是首選的方式),但我想訪問一些這些東西是從其他類的XML配置,這是在XML:如何從代碼

<Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> 
    <Set name="KeyStoreType">PKCS12</Set> 
    <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/keystore"/></Set> 
    <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4"/></Set> 
... 

我想是調用sslContextFactory.getKeyStorePath ()函數在我的代碼庫中的某處。但是,這個sslContextFactory實例在哪裏,我可以在哪裏找到它,我怎樣才能得到它的參考?

回答

0

我並不完全清楚你在問什麼,但我會反正刺傷它。聽起來你很熟悉將Jetty作爲發行版和編輯Jetty XML和ini文件運行,但現在想要將一些Jetty功能用作嵌入式代碼的一部分?

對於SSLContextFactory具體而言,該類包含在distribution附帶的jetty-util jar文件的一部分中。您也可以在Maven Central上自行下載該jar文件。

Jetty的官方文檔包含嵌入式Jetty功能的幾個示例。這page可能會幫助你,特別是在使用SSL的Multiple Connectors上的例子。

+1

謝謝你的時間。它不回答我的問題,試圖澄清更多:我使用XML和ini文件來配置我的碼頭服務器,因爲它沒有嵌入我的應用程序,它是一個獨立的服務器。所以上面在我的問題與該XML我創建一個sslContextFactory實例,參數。我的問題是,如何在我的代碼中引用該sslContextFactory實例,在foo.java中執行示例,因爲我想獲取密鑰庫路徑,或者我想在該實例上調用reload()。 – balazs

0

事實上,它不可能訪問碼頭獨立服務器的SSLContextFactory。根據定義,Jetty可以同時託管多個應用程序,並且像這些Java Web應用程序的容器一樣。

一種選項可使用嵌入式Jetty服務器(a solution here),在那裏你可以啓動一個Java應用程序內的碼頭服務器(例如一個jar包),並保持引用您的SSLContextFactory實例,以便您可以重新加載它,每當你喜歡。

另一個選項可能是使用Maven碼頭運行器,再次從另一個自定義應用程序中,自己控制SslContextFactory。我目前無法確認,bu會盡快更新您的信息。