繁体   English   中英

Heroku上的JAVA RESTful服务器:允许上传/读取SQLite数据库

[英]JAVA RESTful server on Heroku: allow the upload/reading of the SQLite database

我正在开发RESTful Web服务 我使用JPA和SQLite数据库在JAVA中开发了服务器和客户端,并且在本地运行良好。 我只运行客户端的Application类,它将请求发送到localhost并以完美的方式获取响应。

但是,当我在Heroku上部署服务器,创建所需的.war(使用ant或从Eclipse导出.war)时,我在myapp.example / rest / buildings中成功获取了root元素,因此这意味着没有.war本身有任何问题:

<buildings/>

但是,如果我尝试执行简单的POST请求以添加新建筑物(可在本地工作),则会出现以下500错误:

**HTTP Status 500 - Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException**

我认为问题在于它不知道在哪里可以找到SQLite数据库 ,所以问题是:

如何将SQLite数据库上传到Heroku,以允许服务器从中读取数据,然后将响应返回给本地客户端? 它必须以某种方式包含在.war包中吗? (我读到Heroku不支持此RDBMS,但是我听说有解决方法,因为SQLite数据库与其他数据库一样只是一个文件)。

预先谢谢您,如果问题不清楚,请随时问我其他片段或其他问题!

您将不想在Heroku上使用SQLite,因为Heroku使用的是临时文件系统 这意味着对sqlite数据库的更改将每24小时丢失一次。 临时文件系统很重要,因为它可确保服务器上的一致性(即防止雪花服务器)。 SQLite还可以阻止您的应用程序扩展(即运行您的应用程序的更多实例),因为它们每个都有不同的数据库。

Heroku提供免费的PostgreSQL实例,我建议您使用它。 您需要更改JDBC驱动程序,并使用JDBC_DATABASE_URL配置您的应用程序 ,但可能没有其他要求。

旁注:在编辑帖子之前,好像您提到了java.lang.NoSuchMethodError错误。 这可能是由于不确定的类路径加载所致。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM