作者qrtt1 (有些事,有时候。。。)
看板Soft_Job
标题Re: [请益] 部署到server後找不到档案
时间Mon Sep 4 18:36:19 2017
※ 引述《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://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1504521383.A.702.html
※ 编辑: qrtt1 (211.21.157.223), 09/04/2017 18:36:52
1F:推 lovelycateye: 有神快拜! 09/04 19:00
2F:嘘 pttuser: 这不过是reflection应用,还神咧笑死狼,一堆菜逼巴 09/04 20:15
3F:推 senjor: 佛心还不神吗? 09/04 20:19
4F:推 qazsd: 先感谢qrtt1大大!! 09/04 21:04
5F:推 vi000246: 佛心推 09/04 21:16
6F:→ femlro: 总比只会酸的强^^ 09/04 22:30
7F:→ femlro: 神 09/04 22:30
8F:→ jj0321: 超神 09/04 22:31
9F:推 femlro: 本板会分享会帮助别人的 就是神一般的存在 09/04 22:33
10F:→ femlro: 神永远不嫌多 酸酸一个都嫌太多 09/04 22:34
11F:推 jj0321: 真的QQ 每次有位JSON大大发教学文 都会被特定酸给酸 09/04 22:35
12F:推 home2618: 推2楼 09/04 23:46
13F:→ pttworld: 把主管捧成神比较实际,很多人当面却开不了口 09/05 00:07
14F:推 wildli0422: 推有心 09/05 09:29
15F:推 maxqq: haha → femlro: 神永远不嫌多 酸酸一个都嫌太多 09/05 10:29
16F:推 mathrew: 分享是好事 不需要酸 09/06 07:24
17F:推 c85645: 推一个 09/06 19:38
18F:推 chifangjang: 推 09/07 08:18