在服务器上运行时出现 java.io.FileNotFoundException

标签 java spring tomcat

我正在使用 Java 8 和 Spring 4.3.1.RELEASE。

我有以下代码,当我将 main 作为 java 应用程序运行时,它可以工作。但是,当我将它部署到 Tomcat 服务器并有线程调用它时,出现以下错误:

错误

java.io.FileNotFoundException: src/main/resources/certificates/apns-prod-cert.p12 (No such file or directory)

代码

private static String PATH_TO_P12_CERT = "src/main/resources/certificates/apns-prod-cert.p12";

private String sendIOSPushNotification(String device_token, String topics, String title, String message)
        throws Exception {
    ApnsServiceBuilder serviceBuilder = APNS.newService();
        serviceBuilder.withCert(PATH_TO_P12_CERT, CERT_PASSWORD)
                .withProductionDestination();
    ApnsService service = serviceBuilder.build();
    String payload = APNS.newPayload()
            .alertBody(message)
            .alertTitle(title)
            .sound("default")
            .customField("custom", "custom value").build();
    service.push(device_token, payload);

    return "iOS Push Notification: " + title + " " + message;
}

问题

如何定义 apns-prod-cert.p12 的路径?

谢谢

更新

enter image description here

更新

enter image description here

最佳答案

如果您在 IDE 之外运行代码,则没有 /src/main/resources 目录。使用 serviceBuilder.withCert(this.getClass().getResourceAsStream("/certificates/apns-prod‌ -cert.p12"),CERT_PASSWORD)

关于在服务器上运行时出现 java.io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805295/

相关文章:

java - 如何将模拟对象传递给没有该变量的 setter 或构造函数的类?

java - Spring Security 在登录后总是返回 403 accessDeniedPage

java - Spring访问保存的文件而无需重新启动

java - 尝试通过Tomcat内部的 Camel 调用外部HTTP Post请求

java - 将 json URL 导入 java 并使用 jackson 库解析它

java - 在java中将字符串转换为整数时如何检测溢出

从 main 方法调用批处理文件时,批处理文件中的 java 命令未执行

Spring 安全/hibernate : Bad credentials even if they're right?

apache - Hudson Apache SVN 结帐异常 - 500 内部服务器错误

java - Spring MVC 跳过 Validator 类