2017-09-26 61 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会尽快更新您的信息。