我在代码中使用文件时遇到问题。我正在使用javaPNS并尝试让它工作。我现在认为错误的是我如何在javaPNS中的Push.alert方法中获取keystore参数的文件。
我真正想知道的是如何正确“获取资源”以使其格式正确?
以下是抛出的异常:
javapns.communication.exceptions.InvalidKeystoreReferenceException:
Invalid keystore parameter (null). Must be InputStream, File, String (as a file path),
or byte[].
at........
以下是我目前包含该文件的方式:
val keystoreFile = getClass.getResourceAsStream("/app/conf/cert.p12")
如果我们看一下我得到的例外,你认为上面的问题是什么吗?我应该如何在Scala中正确包含文件?
的问候,
答案 0 :(得分:2)
您遇到的问题与您正在加载的InputStream返回null的事实有关。当您尝试加载的文件在类路径上找不到时,会发生这种情况。尝试将代码更改为:
getClass.getClassLoader.getResourceAsStream("app/conf/cert.p12")
您会注意到我删除了文件路径上的前导斜杠,因为我认为这是您的问题。然后确保无论“app”的父目录是什么,都在类路径上。