2016-02-28 125 views
0

像Spring這樣的框架,Struts爲屬性文件讀取提供了便利。例如Struts中的MessageResources。我想知道是否有這樣的屬性文件是由Restlet框架本身支持的。如果有的話,那麼我不需要重新發明輪子並且能夠直接使用它。我的應用程序配置值將包含在該文件中。我是Restlet的新手,我找不到任何營養。任何方式來做到這一點?Restlet自定義配置屬性文件

回答

1

在Restlet中沒有這樣的支持。這就是說,你可以利用客戶端協議從差異中的位置加載這些屬性文件:

  • Protocol.FILE - 從文件系統直接
  • Protocol.CLAP - 從classpath中
  • Protocol.OBAP - 從OSGi包

這裏樣品:

ClientResource cr = new ClientResource("clap://someproperties.properties"); 
Properties props = new Properties(); 
props.load(cr.get().getStream()); 

在定義組件時需要指定此協議:

Component component = new Component(); 
(...) 
component.getServers().add(Protocol.HTTP, 8182); 
component.getClients().add(Protocol.CLAP); 
+0

非常感謝您的回答。我是restlets的新手。我從你的回答中瞭解到,屬性需要從不同的位置(另一個服務器調用服務器)加載。如果是這樣的話,這不會是性能上的缺陷,因爲這個過程將不得不等待響應回來。 –

+1

不用擔心;-)實際上像'FILE'和'CLAP'這樣的協議是本地的,不需要網絡調用。這是類似於使用Reader或InputStream,但通過Restlet API ... –

+0

我嘗試了你所提到的。但它失敗了。可能是我犯了錯誤。在我的一個util類中,我嘗試調用完全相同的「ClientResource cr = new ClientResource(」clap://someproperties.properties「); 屬性props = new Properties(); props.load(cr.get ).getStream());」 。但是有一個錯誤「服務器沒有找到任何匹配請求URI的東西」。我的屬性文件位於資源文件夾中(這是一個maven項目)。我不清楚'組件'是如何在這裏使用的,以及爲什麼它是必要的,就像我們在項目中調用一個文件一樣?有什麼想法嗎? –