Re: [請益] 部署到server後找不到檔案
※ 引述《qazsd (珍惜當下)》之銘言:
: 藉助一下軟體版廣大的人氣,請問板上前輩們
: 小弟有Maven專案資料夾結構如下:
: Project
: ├src/main/java
: │ └ com.abc.xyz
: │ └Auth.java
: └src/main/resources
: └certs
: └credential.p12
: Auth.java裡有段程式碼用來驗證:
: =====================================================================
: File file = new File(classLoader.getResource("cert.p12").getFile());
: String filePath = file.getAbsolutePath();
: GoogleCredential credential = new GoogleCredential.Builder()
: .setTransport(httpTransport)
: .setJsonFactory(JSON_FACTORY)
: .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
: .setServiceAccountScopes(Collections.singleton(
: CalendarScopes.CALENDAR_READONLY))
: .setServiceAccountPrivateKeyFromP12File(new File(filePath))
: .setServiceAccountUser(SERVICE_ACCOUNT_USER)
: .build();
: =====================================================================
: 將該專案檔的jar部署到Server上後
: 會出現找不到credential檔案的錯誤訊息
: 想請問credential檔案應該放在專案或server哪裡才能被找到?
: 又該怎麼指定路徑呢?
你無法直接存取包在 zip 內的檔案,File 物件不是這樣給你用的。
有 2 個選擇,1 個是把它解開來,存成檔案,另一個是轉成 private key,
再呼叫另 method
http://bit.ly/2wxy7qH
public GoogleCredential.Builder
setServiceAccountPrivateKey(PrivateKey serviceAccountPrivateKey)
-----------------------------------------------------------------------------
那麼,可以寫成這樣的 method,直接由 classloader 把 resource 抓出來,
轉成 PrivateKey 給它吃:
public static PrivateKey loadKeyFromPkcs12() throws Exception {
char[] password = "notasecret".toCharArray();
try (InputStream input = Auth.class.getResourceAsStream(
"/certs/credential.p12")) {
KeyStore ks = KeyStore.getInstance("PKCS12");
ks.load(input, password);
return (PrivateKey) ks.getKey("privatekey", password);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.21.157.223
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1504521383.A.702.html
※ 編輯: qrtt1 (211.21.157.223), 09/04/2017 18:36:52
推
09/04 19:00, , 1F
09/04 19:00, 1F
噓
09/04 20:15, , 2F
09/04 20:15, 2F
推
09/04 20:19, , 3F
09/04 20:19, 3F
推
09/04 21:04, , 4F
09/04 21:04, 4F
推
09/04 21:16, , 5F
09/04 21:16, 5F
→
09/04 22:30, , 6F
09/04 22:30, 6F
→
09/04 22:30, , 7F
09/04 22:30, 7F
→
09/04 22:31, , 8F
09/04 22:31, 8F
推
09/04 22:33, , 9F
09/04 22:33, 9F
→
09/04 22:34, , 10F
09/04 22:34, 10F
推
09/04 22:35, , 11F
09/04 22:35, 11F
推
09/04 23:46, , 12F
09/04 23:46, 12F
→
09/05 00:07, , 13F
09/05 00:07, 13F
推
09/05 09:29, , 14F
09/05 09:29, 14F
推
09/05 10:29, , 15F
09/05 10:29, 15F
推
09/06 07:24, , 16F
09/06 07:24, 16F
推
09/06 19:38, , 17F
09/06 19:38, 17F
推
09/07 08:18, , 18F
09/07 08:18, 18F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):