0

このリンクに基づいて、ローカルの tomcat インストールに restSQL をデプロイしようとしています。

私のtomcat webappsフォルダーから:

webapps\restsql-0.8\WEB-INF\classes\resources\properties

'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

何が問題なのですか?

4

2 に答える 2

0

展開でご迷惑をおかけして申し訳ありません。restSQL には、メイン プロパティ ファイルへの絶対パスが必要です。デフォルトのクラスパスを調べる以外に、WAR ファイルまたは展開された Web アプリケーション ディレクトリを検索する機能はありません。

ほとんどのパスは他のファイルへのパスであり、メインの restSQL プロパティ ファイルで参照される絶対パスである必要があります。相対的なものは logging.config だけです。すべての核心的な展開手順については、展開をご覧ください 。

それがうまくいくことを願っています。

于 2012-07-26T20:50:14.553 に答える
0

悪いことは重なります?

データベース作成スクリプトの 1 つを実行する際に問題が発生したようですね。それはrestsql-sdk/WebContent/database/postgresqlにありますか? create-sakila.bat の実行中にエラーが発生しましたか? psql 実行可能ファイルがパスにない可能性があります。ファイルを編集して、PATH 環境変数に一時的に追加できます。

リソース クエリがデータを返さない場合、5xx エラーは発生しません。空の readResponse ドキュメントで 200 が返されます。

あなたの問題は、リソース定義のメタデータの問題である可能性があります。country_id は国テーブルからのものですか? 国はメタデータでテーブルとして定義されていますか? リソース定義を投稿できますか?

http://restsql.org/doc/SqlResourceRules.htmlで SQL リソース ルールを確認しましたか? 申し訳ありませんが、SQL 関数とビューは許可されていません。単純な古い列とテーブルを使用する必要があります。

于 2012-07-27T12:23:20.567 に答える