Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring Maven WAR中指定SQLite db文件的位置_Java_Spring_Sqlite_Maven_Jdbc - Fatal编程技术网

Java 如何在Spring Maven WAR中指定SQLite db文件的位置

Java 如何在Spring Maven WAR中指定SQLite db文件的位置,java,spring,sqlite,maven,jdbc,Java,Spring,Sqlite,Maven,Jdbc,我已经看到一些关于这个问题的问题,但我还没有找到一个明确的答案 我需要将SQLite.db文件打包到WAR中,并在WAR或分解WAR中使用该db文件 我的项目是Spring,使用SpringJDBC 对于测试代码的非web部分,类路径中的.db文件一切正常。我可以对数据库运行单元测试,只要使用 <bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="connec

我已经看到一些关于这个问题的问题,但我还没有找到一个明确的答案

我需要将SQLite.db文件打包到WAR中,并在WAR或分解WAR中使用该db文件

我的项目是Spring,使用SpringJDBC

对于测试代码的非web部分,类路径中的.db文件一切正常。我可以对数据库运行单元测试,只要使用

<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="connectionInitSqls">
    <list>
        <value>PRAGMA foreign_keys = ON</value>
    </list>
</property>
<property name="driverClassName" value="org.sqlite.JDBC" />
<property name="url" value="jdbc:sqlite:app2.db" />
</bean>
我看到它建议我使用

<property name="url" value="jdbc:sqlite:${catalina.base}/webapps/APPNAME/WEB-INF/classes/app2db.db" />

尽管这似乎不适用于我的安装(并且仍然不是最佳解决方案,因为它与周围的部署位置有关)

sqlite允许不使用前面的正斜杠映射相对路径,但是我不能在战争中使用类似的东西

<property name="url" value="jdbc:sqlite:WEB-INF/classes/app2db.db" />

这就是我要寻找的——相对路径映射,这样我可以在WAR中发送.db,然后告诉某人部署到tomcat——或者任何服务器,这是合理的,因为我有需要执行的JAR,大部分是通过Maven与应用打包在一起的--(即使它们的目录结构不正常,或者没有映射路径变量),并且仍然能够通过rw访问从爆炸战争中访问数据库

在部署时,只有将db放入
WebContent/resources
目录,我才能将其拉入WAR文件


如果我将
my.db
放在
/src/main/resources/my.db
中,它将被打包在
/my.war/WEB-INF/classes/my.db
中。

(我欢迎任何关于为什么不能这样做的解释,如果不能的话,因为理解这一点也会很有用。)欢迎来到StackOverflow!(你能够作为新用户在那里添加内容吗?)Gerold,可能重复感谢您的回复。我还可以通过此目录(或通过maven WAR插件规范中的解决方案资源映射,通过WebApps子目录中的某些内容)将.db放入WAR的classes子目录,但这不是主要问题。请参阅我的编辑以了解详细信息(我在这里限制了内容长度)。此外,我的投票还没有登记,因为我的声誉还没有完全提升。
<property name="url" value="jdbc:sqlite:WEB-INF/classes/app2db.db" />