0

我有 grails 应用程序,它工作正常,直到我安装REST PLUGIN。安装后我尝试运行我的应用程序,但由于以下原因运行失败。

| Loading Grails 2.0.3
| Configuring classpath.
| Environment set to development.....
| Packaging Grails application.....
| Error Error executing script RunApp: loader constraint violation: 
  loader (instance of <bootloader>) previously initiated loading for a different 
  type with name "org/w3c/dom/TypeInfo" (Use --stacktrace to see the full trace)

注意:我使用 grails 2.0.3 和 groovy 1.8.6 和 eclipse spring 源工具套件 2.9.1

我尝试grails> run-app --stacktrace

| Loading Grails 2.0.3
| Configuring classpath.
| Environment set to development.....
| Packaging Grails application.....
| Error Error executing script RunApp: loader constraint violation: 
  loader (instance of <bootloader>) previously initiated loading for a 
  different type with name "org/w3c/dom/TypeInfo" 
  (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)

java.lang.LinkageError: loader constraint violation: loader 
  (instance of <bootloader>) previously initiated loading for a different 
  type with name "org/w3c/dom/TypeInfo"

at com.springsource.loaded.ri.ReflectiveInterceptor.jlClassGetDeclaredMethods
  (ReflectiveInterceptor.java:123)

at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke
  (ReflectiveInterceptor.java:1231)

at _GrailsPackage_groovy$_run_closure5_closure10.doCall
  (_GrailsPackage_groovy:121)

at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke
  (ReflectiveInterceptor.java:1231)

at _GrailsPackage_groovy$_run_closure5_closure10.doCall
  (_GrailsPackage_groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke
  (ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod (GantMetaClass.java:133)

at _GrailsPackage_groovy$_run_closure5.doCall(_GrailsPackage_groovy:119)

at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke
  (ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke
  (ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16_closure18.doCall(GantBinding.groovy:185)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16_closure18.doCall(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at java_util_concurrent_Callable$call.call(Unknown Source)

at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)

at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16.doCall(GantBinding.groovy:185)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16.doCall(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at _GrailsPackage_groovy$_run_closure2.doCall(_GrailsPackage_groovy:61)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16_closure18.doCall(GantBinding.groovy:185)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16_closure18.doCall(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at java_util_concurrent_Callable$call.call(Unknown Source)

at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)

at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16.doCall(GantBinding.groovy:185)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16.doCall(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.processClosure(GantMetaClass.java:81)

at org.codehaus.gant.GantMetaClass.processArgument(GantMetaClass.java:95)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:128)

at RunApp$_run_closure1.doCall(RunApp.groovy:28)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantMetaClass.invokeMethod(GantMetaClass.java:133)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16_closure18.doCall(GantBinding.groovy:185)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_c
   losure16_closure18.doCall(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at java_util_concurrent_Callable$call.call(Unknown Source)

at org.codehaus.gant.GantBinding.withTargetEvent(GantBinding.groovy:90)

at org.codehaus.gant.GantBinding.this$4$withTargetEvent(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16.doCall(GantBinding.groovy:185)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.gant.GantBinding$_initializeGantBinding_closure5_
   closure16.doCall(GantBinding.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at java_util_concurrent_Callable$call.call(Unknown Source)

at gant.Gant$_dispatch_closure5.doCall(Gant.groovy:381)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at gant.Gant$_dispatch_closure7.doCall(Gant.groovy:415)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at gant.Gant$_dispatch_closure7.doCall(Gant.groovy)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at java_util_concurrent_Callable$call.call(Unknown Source)

at gant.Gant.withBuildListeners(Gant.groovy:427)

at gant.Gant.this$2$withBuildListeners(Gant.groovy)

at gant.Gant$this$2$withBuildListeners.callCurrent(Unknown Source)

at gant.Gant.dispatch(Gant.groovy:415)

at gant.Gant.this$2$dispatch(Gant.groovy) 

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at gant.Gant.invokeMethod(Gant.groovy)

at gant.Gant.executeTargets(Gant.groovy:591)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at gant.Gant.executeTargets(Gant.groovy:590)

at com.springsource.loaded.ri.ReflectiveInterceptor.
   jlrMethodInvoke(ReflectiveInterceptor.java:1231)

| Error Error executing script RunApp: loader constraint violation: 
  loader (instance of <bootloader>) previously initiated loading for a 
  different type with name "org/w3c/dom/TypeInfo"

应用程序属性:

#Grails Metadata file
#Mon May 21 10:44:15 EEST 2012
app.grails.version=2.0.3
app.name= my-application
app.servlet.version=2.4
app.version=0.1
plugins.ckeditor=3.4.0.1
plugins.crypto=2.0
plugins.email-confirmation=1.0.4
plugins.excel-import=0.3
plugins.filter=0.2
plugins.filterpane=0.7
plugins.gsec=1.0
plugins.hibernate=2.0.3
plugins.mail=0.9
plugins.navigation=1.1.1
plugins.p6spy=0.5
plugins.quartz=0.4.2
plugins.rest=0.7
plugins.tomcat=2.0.3
plugins.webflow=2.0.0

有什么帮助吗?

注意:我尝试使用REST Client Builder Plugin但我不知道如何使用它以及如何发送 json 请求正文。any one know?

4

3 回答 3

3

REST Client Builder Plugin很容易使用,就像:

def test (String testName, String testDescription){
    def restBuilder = new RestBuilder()
    def restRequest = restBuilder.post(url){
        contentType "application/json"
        json {
            name = testName
            description = testDescription
        }
    }
    restRequest.json
}

1- url:是您要发布请求的 url

2-名称和描述:是您将在调用此方法的网络服务器中收到的参数的名称

注意:不要忘记安装REST Client Builder Pluginimport grails.plugins.rest.client.RestBuilder在您使用它的类中。

于 2012-05-22T08:49:02.293 回答
3

我有一个类似的问题(尽管我只需要 http-builder 库而不是插件本身)。-noreloading 选项并没有让它变得更好。

但是,正如它在这里指出的那样http://jira.grails.org/browse/GPEXPORT-18?focusedCommentId=69307&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-69307 可以手动列出在 BuildConfig.groovy 中引用 xmlbeans 并明确排除 xmlbeans 的所有模块,例如

compile (group:'org.apache.poi', name:'poi', version:'3.7') {
  excludes 'xmlbeans'
}
compile (group:'org.apache.poi', name:'poi-ooxml', version:'3.7') {
  excludes 'xmlbeans'
}
于 2012-06-29T18:20:22.760 回答
2

这是 Grails 中的一个错误。Spring 加载,在 Grails 中支持热重载类的技术导致 REST Client Build 插件出现问题。

以下命令应该允许您使用插件:

grails -noreloading 运行应用程序

于 2012-06-19T08:12:20.497 回答