restSQL war部署问题

时间:2012-07-26 11:14:35

标签: java sql rest tomcat

我正在尝试基于此link.

在我的本地tomcat安装中部署restSQL

来自我的tomcat webapps文件夹:

  

的webapps \ restsql-0.8 \ WEB-INF \类\资源\属性

我修改了'default-restsql.properties'以设置正确的数据库连接

并在该位置添加/创建文件夹时保留属性'sqlresources.dir=/resources/xml/sqlresources'

我也在web.xml中进行了修改:

<context-param>
    <param-name>org.restsql.properties</param-name>
    <param-value>/WEB-INF/resources/properties/default-restsql.properties</param-value>
</context-param>

我非常确定自从访问此资源时加载了default.restsql.properties

http://localhost:8080/restsql-0.8/conf

我收到了这个回复:

Properties loaded from /resources/properties/default-restsql.properties:
log4j.configuration = resources/properties/default-log4j.properties
org.restsql.security.Authorizer = org.restsql.security.impl.AuthorizerImpl
org.restsql.core.RequestLogger = org.restsql.core.impl.RequestLoggerImpl
**sqlresources.dir = /resources/xml/sqlresources**
database.driverClassName = com.mysql.jdbc.Driver
logging.config = resources/properties/default-log4j.properties
database.user = root
org.restsql.core.Factory.ResponseSerializerFactory = org.restsql.core.impl.ResponseSerializerFactoryImpl
org.restsql.core.SqlBuilder = org.restsql.core.impl.SqlBuilderImpl
database.password = root
org.restsql.core.Factory.ConnectionFactory = org.restsql.core.impl.ConnectionFactoryImpl
org.restsql.core.SqlResourceMetaData = org.restsql.core.impl.SqlResourceMetaDataMySql
org.restsql.core.HttpRequestAttributes = org.restsql.core.impl.HttpRequestAttributesImpl
logging.facility = log4j
response.useXmlSchema = false
org.restsql.core.Factory.RequestFactory = org.restsql.core.impl.RequestFactoryImpl
database.url = jdbc:mysql://localhost:3306/
logging.dir = /var/log/restsql
org.restsql.core.Factory.SqlResourceFactory = org.restsql.core.impl.SqlResourceFactoryImpl
request.useXmlSchema = false
response.useXmlDirective = false
org.restsql.core.Factory.RequestDeserializerFactory = org.restsql.core.impl.RequestDeserializerFactoryImpl

Properties using defaults:
org.restsql.core.Factory.Connection = org.restsql.core.impl.ConnectionFactoryImpl
java.util.logging.config.file = resources/properties/default-logging.properties
request.useXmlDirective = false
org.restsql.properties = /resources/properties/default-restsql.properties

但是,当我访问此资源时

http://localhost:8080/restsql-0.8/res/

我收到了这个回复:

  

SQL资源目录/ resources / xml / sqlresources不存在...请   更正restsql.properties文件中的sqlresources.dir属性

虽然该文件夹确实存在:webapps\restsql-0.8\WEB-INF\classes\resources\xml\sqlresources

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

很抱歉,您在部署时遇到问题。 restSQL需要主属性文件的绝对路径。除了在类路径中查找默认值之外,它无法搜索其WAR文件或展开的Web应用程序目录。

大多数路径都是其他文件,在主要的restSQL属性文件中引用必须是绝对的。唯一相对的是logging.config。有关所有细节部署说明,请查看Deployment

希望能帮到你。

答案 1 :(得分:0)

下雨的时候倒了吗?

听起来你在运行其中一个数据库创建脚本时遇到了麻烦?那是在restsql-sdk / WebContent / database / postgresql中吗?你有没有运行create-sakila.bat的错误?也许你的psql可执行文件不在你的路径中。您可以编辑该文件以暂时将其添加到PATH环境变量中。

如果资源查询未返回任何数据,则不会收到任何5xx错误。您将获得一个带有空readResponse文档的200。

您的问题可能是资源定义元数据问题。 country_id来自国家/地区表吗?国家/地区是否被定义为元数据中的表格?你可以发布资源定义吗?

您是否查看了http://restsql.org/doc/SqlResourceRules.html处的SQL资源规则?抱歉,不允许使用SQL函数和视图。您必须使用普通的旧列和表。