1

データベースを作成するためにgrailsスクリプトを作成しましたが、コードはJavaであり、grailsスクリプトで使用できると思いました。

これは私のスクリプトです

インポート com.test.database.*
インポート com.test.constant.*
org.neo4j.kernel.* をインポートします。

target(main: "スクリプトの説明が入ります!") {
    デシベル = DataRepository.getInstance(新しい EmbeddedGraphDatabase(
        Constant.PROJECT_PATH + "/web-app/WEB-INF/resources/db"))

}

setDefaultTarget(メイン)

私のJavaクラスはsrc/javaにありますが、スクリプトを実行するとこのエラーが発生しました

スクリプト DbCreate の実行中にエラーが発生しました: そのようなプロパティはありません: クラスの DataRepository: DbCreate
そのようなプロパティはありません: クラスの DataRepository: DbCreate
    gant.Gant$_dispatch_closure5.doCall(Gant.groovy:387)で
    gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415) で
    gant.Gant$_dispatch_closure7.doCall(Gant.groovy) で
    gant.Gant.withBuildListeners で (Gant.groovy:427)
    gant.Gant.this$2$withBuildListeners(Gant.groovy) で
    gant.Gant$this$2$withBuildListeners.callCurrent で (不明なソース)
    at gant.Gant.dispatch(Gant.groovy:415)
    at gant.Gant.this$2$dispatch(Gant.groovy)
    gant.Gant.invokeMethod(Gant.groovy) で
    gant.Gant.executeTargets で (Gant.groovy:590)
    gant.Gant.executeTargets で (Gant.groovy:589)
原因: groovy.lang.MissingPropertyException: そのようなプロパティはありません: クラスの DataRepository: DbCreate
    DbCreate$_run_closure1.doCall で (DbCreate:11)
    gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)で

私の質問は、grails スクリプトでユーザー定義の Java クラスを呼び出すことはできますか?

4

2 に答える 2

1

このように classLoader を使用してクラスを直接ロードできます...

def dataRepo = classLoader.loadClass('path.to.DataRepository') 

または、使用することもできます...

includeTargets << grailsScript('_GrailsBootstrap') 

すべてのメンバーをロードする必要があります。

于 2011-07-08T12:56:07.357 に答える
0

1.3.6 以降を使用している場合は、http: //grails.org/doc/latest/ref/Command%20Line/run-script.htmlを使用できます。古いバージョンの Grails を使用している場合は、http://naleid.com/blog/2010/12/03/grails-run-script-updated-for-grails-1-3-5/のスクリプト

于 2011-07-08T12:58:02.147 に答える