微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Camel FTPs FileNotFoundException 与战争资源中的密钥库文件

如何解决Camel FTPs FileNotFoundException 与战争资源中的密钥库文件

我试图通过camel-ftp 将我的Spring Boot 应用程序连接到FTPs 服务器。 我通过 FTP 连接 Uri 中的 ftpClient.trustStore.file 参数配置了密钥库文件。 在 IDE 中运行 debug 时它正常工作,但是在将应用程序打包到 war 文件并部署在 Docker 容器中时。我收到 FileNotFoundException :Caused by: java.io.FileNotFoundException: file:/usr/app/app.war!/WEB-INF/classes!/keys/diode.jks (No such file or directory)

我试过检查

  1. /classes/keys 文件夹中已经存在额外的战争文件和密钥库(从源代码中的 /resources/keys 文件夹复制)
  2. 添加日志,我可以在使用 war 运行应用程序时获取密钥库文件内容,但无法获取传递给 FTP 连接 Uri 的文件路径。

如何在war中获取真实的文件keystore文件路径并通过camel-ftp传递给FTPs连接Uri中的ftpClient.trustStore.file参数

解决方法

从异常消息中,我可以推断出某些东西正试图打开一个“文件:”URL,就好像它是一个常规文件路径名一样。那行不通。

  1. 如果你有需要文件路径的东西,你需要给它一个真实的文件路径。不是 file: 网址。

  2. 如果 URL 引用 JAR 或 WAR 文件的资源,则没有有效的文件系统路径。无法以这种方式打开存档文件中的内容。您操作系统的“打开文件”系统调用需要路径名而不是 URL。

因此,您可能需要做的是从 WAR 中提取密钥库文件并将其写入文件系统中的一个文件中。 (听起来已经完成了。)然后您需要更改 FTPS 连接 URL 以使用该文件文件的路径名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?