我有一个可用的java程序,它正在使用derby进行一些数据库工作。 连接的数据库 URL
jdbc:derby://localhost:1527/MaorB_CouponDB
不是硬编码,而是写入 .txt 文件中,位于“files”文件夹中,而不是 src 中。 像这样运行项目并测试系统效果非常好。
该项目的第二阶段正在将所有内容转移到 Web,该 Java 程序充当服务器上的大脑来执行数据库操作。我将整个项目导出为 .JAR,我可以看到它还包含“files”文件夹(带有 url txt 和其他文件)。
但是,尝试在新的动态 Web 项目上运行一个简单的测试来检查它(在将 project.jar、derby_client.jar 作为外部库导入之后)会导致异常:
ERROR: something went wrong. cannot initialize a ConnectionPool instance. cause:
URL file not found, on connection pool CTOR
x.exceptions.ConnectionPoolException: URL file not found, on connection pool CTOR
at b.connections.ConnectionPool.<init>(ConnectionPool.java:34)
at b.connections.ConnectionPool.getInstance(ConnectionPool.java:73)
at d.DAO.CompanyDbDAO.<init>(CompanyDbDAO.java:26)
at f.system.CouponSystem.<init>(CouponSystem.java:36)
at f.system.CouponSystem.getInstance(CouponSystem.java:58)
at a.test.main(test.java:11)
Caused by: java.io.FileNotFoundException: files\urlFile (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at b.connections.ConnectionPool.<init>(ConnectionPool.java:31)
... 5 more
手动将 .txt 文件复制到新 Web 项目中的多个位置不会产生任何结果。
这里和其他地方的快速研究建议以某种方式使用:
this.getClass().getResourceAsStream("/files/urlFile.txt");
但是在尝试了相当多的路径字符串变体之后,我只得到 null。
有什么建议吗? 谢谢。
<小时/>编辑: 这是我尝试过并且我认为相关的所有内容: resulting in null while trying to get resource
<小时/>最佳答案
确保资源文件位于结果 jar 中。这通常是此类错误的原因。如果您发布您的构建文件,将更容易提供帮助。
关于java - 将 java 项目导出为 JAR 并尝试在 ECLIPSE 的动态 Web 项目中使用它后,找不到资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50571771/