【发布时间】:2018-04-11 11:41:49
【问题描述】:
我在 v3.2.11 的 grails 应用程序中使用 grails-xss-sanitizer。当我尝试将我的应用程序升级到最新的 3.3.4 时。它报告了以下问题:
[2018-04-11 11:16:37,627] [main] 错误 o.s.b.SpringApplication - 应用程序启动失败 java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/FilterRegistrationBean 在 grails.plugin.xss.sanitizer.XssSanitizerGrailsPlugin$_doWithSpring_closure1.doCall(XssSanitizerGrailsPlugin.groovy:38) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1427) 在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) 在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 在 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) 在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) 在 groovy.lang.Closure.call(Closure.java:418) 在 groovy.lang.Closure.call(Closure.java:412) 在 grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:759) 在 grails.spring.BeanBuilder.beans(BeanBuilder.java:588) 在 grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:531) 在 org.grails.plugins.DefaultGrailsPlugin.doWithRuntimeConfiguration(DefaultGrailsPlugin.java:559) 在 org.grails.plugins.AbstractGrailsPluginManager.doRuntimeConfiguration(AbstractGrailsPluginManager.java:167) 在 grails.boot.config.GrailsApplicationPostProcessor.postProcessBeanDefinitionRegistry(GrailsApplicationPostProcessor.groovy:171) 在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:272) 在 org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:122) 在 org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) 在 org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 在 grails.boot.GrailsApp.run(GrailsApp.groovy:84) 在 grails.boot.GrailsApp.run(GrailsApp.groovy:393) 在 grails.boot.GrailsApp.run(GrailsApp.groovy:380) 在 grails.boot.GrailsApp$run.call(未知来源) 在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136) 在 com.the41.fraudnet.Application.main(Application.groovy:28) 引起:java.lang.ClassNotFoundException: org.springframework.boot.context.embedded.FilterRegistrationBean 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 省略了 34 个常用帧
FAILURE:构建失败并出现异常。
- 出了什么问题:任务“:bootRun”执行失败。
进程 'command '/opt/jdk1.8.0_131/bin/java'' 以非零退出值 1 结束
我在 grails 3.3.x 升级说明中看到:
Spring Boot 1.5.x - 在 grails 3.3.x 中支持
Spring Boot 1.5.x 删除了许多不推荐使用的类,特别是 中的几个类 org.springframework.boot.context.embedded 包。
如果您的应用程序引用了其中的任何类 您需要更改要使用的导入包 org.springframework.boot.web.servlet 代替。
org.springframework.boot.context.web 包中的所有类都有 根据 Spring Boot 1.4 发行说明已弃用并重新定位。
并且 xss-sanitizer 插件正在使用包“org.springframework.boot.context.embedded”中定义的类
那么,是否有针对 grails 3.3.x 升级 xss-sanitizer 插件的计划或任何解决此问题的方法?
【问题讨论】:
-
您的问题是,无论如何如何让它工作?为什么不问问作者呢?
标签: java spring spring-boot grails grails-3.3