2012-07-26 131 views
0

我想在此基礎上link.restSQL戰爭的部署問題

從我的tomcat在我的本地Tomcat的安裝部署restSQL的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資源目錄/資源/ XML/sqlresources不存在......請 糾正你的restsql.properties您sqlresources.dir屬性文件

儘管文件夾確實存在:webapps\restsql-0.8\WEB-INF\classes\resources\xml\sqlresources

可能是什麼問題?

+0

'/ resources/xml/sqlresources'指向文件系統中的絕對路徑嗎?嘗試創建此目錄來測試它... – Thor 2012-07-26 11:29:14

+0

我試着將屬性更改爲:sqlresources.dir =%TOMCAT_HOME%/ webapps/restsql-0.8/WEB-INF/classes/resources/xml/sqlresources仍然遇到同樣的問題。當我通過該目錄的命令提示符執行'cd'時,我得到正確的文件夾 – xybrek 2012-07-26 11:35:31

回答

0

很抱歉,您在部署時遇到問題。 restSQL需要主屬性文件的絕對路徑。它不具備搜索其WAR文件或展開Web應用程序目錄的能力,除了在類路徑中查找默認值外。

大多數路徑都是其他文件,在restSQL的主屬性文件中引用的文件必須是絕對的。唯一相對的是logging.config。請查看Deployment瞭解所有基本部署說明。

希望能爲你做好把戲。

+0

但是,當我訪問「資源」時,我遇到了另一個問題:定義需要表元素for,由列country_id引用我懷疑原因是因爲該表是空的,因爲我無法從pqAdmin內運行sakila-data.sql。就你而言,你是如何填充sakila桌子的?我試過'psql'但是執行「/ i C:/postgresql/sakila-data.sql」並沒有做任何事情,表格仍然是空的...... – xybrek 2012-07-26 23:47:06

0

下雨時,它會傾倒嗎?

聽起來像您在運行其中一個數據庫創建腳本時遇到了麻煩?那是在restsql-sdk/WebContent/database/postgresql嗎?運行create-sakila.bat是否有錯誤?也許你的psql可執行文件不在你的路徑中。您可以編輯該文件以暫時將其添加到PATH環境變量中。

如果資源查詢不返回任何數據,您將不會收到任何5xx錯誤。您將得到一個空的readResponse文檔200。

您的問題可能是資源定義元數據問題。 country_id來自country table嗎?國家是否將元數據定義爲表格?你能發佈資源定義嗎?

您是否看過http://restsql.org/doc/SqlResourceRules.html上的SQL資源規則?對不起,SQL函數和視圖是不允許的。您必須使用普通的舊列和表格。