2017-09-02 68 views
0

我使用Ubuntu 16.04.1 64位時,Eclipse 3.8.1和嵌入式碼頭9.3.12運行的WebSocket服務器如何使用contextFactory.setKeyStorePath在Eclipse

我希望轉換成使用安全的WebSockets和我試圖使用

SslContextFactory contextFactory = new SslContextFactory(); 
contextFactory.setKeyStorePath("./keystore"); 

我不知道在Ubuntu中放置密鑰庫文件的位置,以便上述工作。換句話說:我不知道是什麼./keystore應該讀

我嘗試使用

Resource keystore = 
    Resource.newClassPathResource("/WebSocketTest/certificate/jetty.key"); 

if (keystore != null) { 
    System.out.println("keystore found"); 
} 

一些測試,這表明我找不到/WebSocketTest/certificate/jetty.key

certificate被鏈接的資源我添加了點到/opt/jetty/etc 幷包含jetty.key文件

資源上沒有篩選器

可有人請向我解釋如何正確定義密鑰庫

回答

0

你有一對夫婦的問題在這裏的位置:

在哪裏工作目錄?你可以發現,出來做一個

System.out.println(new File(".").getAbsolutePath()); 

在一個Eclipse項目,這是在一般項目的文件夾,你的情況WebSocketTest

所以一個方法來創建資源可能是

Resource keystore = Resource.newResource(new File("./certificate/jetty.key")); 

如果你確保目錄及其文件被複制到class-output-directory(把證書目錄放到源文件夾中就可以做到這一點,那麼你可以保留它newClassPathResource)。是喲你不需要改變任何東西,如果你將項目導出爲jar文件,並且文件不能直接通過File獲得。