2013-05-21 48 views
0

首先,我已經開始瀏覽這些URL以將spring-security-ui安裝到我的grails應用程序中。將spring-security-ui集成到我的grails應用程序中所需的說明

Spring Security UI Plugin

和...

Customizing Grails Spring Security Plugin

我已經安裝了彈簧安全核心和我的應用程序的工作。我能夠爲gsp元素和控制器操作創建所有訪問控制。完成了。現在,我的要求是提供一個用戶界面來管理用戶,角色和訪問權限,以便一些管理員可以輕鬆使用它。

注意:在集成spring-security-core時,我選擇doman類爲SecureUser,SecureRole和Requestmap作爲要生成的域(而不是默認的用戶,角色和請求映射)。但是,是的,這是完美的。

的步驟,我跟着:

  1. 添加插件依賴纂 「:春季安全的用戶界面:0.2」

  2. 冉命令:Grails的安裝,插件彈簧安全 - ui

  3. 這將返回一個成功消息,並提示安裝插件 c ommand是depecretated,並將在未來的版本中被替換...我現在不需要擔心。

  4. 我做了一個grails run-app我看到一個巨大的堆棧跟蹤(我會在問題結尾粘貼)。

所以,我的問題是:

  1. 有一次,我看到安裝插件後成功的消息,什麼我應該在應用程序中看到了什麼?它是否不會創建任何控制器或域或視圖來提供UI?

  2. 有沒有我失蹤的步驟?直到第4步?我認爲應該給我一個基本的界面/用戶界面來管理用戶(除非我想像上面給出的objectpartners URL那樣自定義)。

而且,我看到的時候我不運行應用程序是錯誤:

| Loading Grails 2.2.1 
| Configuring classpath 
| Configuring classpath. 
| Environment set to development 
| Environment set to development. 
| Environment set to development.. 
| Environment set to development... 
| Environment set to development.... 
| Environment set to development..... 
| Packaging Grails application 
| Packaging Grails application. 
| Packaging Grails application.. 
| Packaging Grails application... 
| Packaging Grails application.... 
| Compiling 1 source files 
| Compiling 1 source files. 
| Compiling 1 source files.. 
| Compiling 1 source files... 
| Compiling 1 source files.... 
| Compiling 1 source files..... 
| Compiling 1 source files..... 
2013-05-21 15:34:27,535 [main] WARN webxml.WebxmlGrailsPlugin - Did not find application config file: WebXmlConfig 
2013-05-21 15:34:28,130 [main] WARN webxml.WebxmlGrailsPlugin - Did not find application config file: WebXmlConfig 
| Running Grails application 

Configuring Spring Security UI ... 
... finished configuring Spring Security UI 

2013-05-21 15:34:32,508 [localhost-startStop-1] WARN util.GrailsUtil - [DEPRECATED] Method ConfigurationHolder.getConfig() is deprecated and will be removed in a future version of Grails. 

Configuring Spring Security Core ... 
... finished configuring Spring Security Core 

2013-05-21 15:34:34,080 [localhost-startStop-1] WARN config.ConfigurationFactory - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/C:/Users/ramarajuv/.grails/ivy-cache/net.sf.ehcache/ehcache-core/jars/ehcache-core-2.4.6.jar!/ehcache-failsafe.xml 
2013-05-21 15:34:35,633 [localhost-startStop-1] WARN util.GrailsUtil - [DEPRECATED] Method ApplicationHolder.getApplication() is deprecated and will be removed in a future version of Grails. 
2013-05-21 15:34:37,391 [localhost-startStop-1] WARN servlet.DefaultGrailsApplicationAttributes - ApplicationContext not found in org.codehaus.groovy.grails.APPLICATION_CONTEXT attribute of servlet context. 
2013-05-21 15:34:38,402 [localhost-startStop-1] WARN module.ModuleDeclarationsFactory - 'grails.resources.modules' in config does not define any modules 
2013-05-21 15:34:38,571 [localhost-startStop-1] ERROR StackTrace - Full Stack Trace: 
java.lang.NullPointerException: Cannot get property 'name' on null object 
    at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56) 
    at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) 
    at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227) 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:272) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:124) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:272) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
    at org.grails.plugin.resource.ResourceProcessor.updateDependencyOrder(ResourceProcessor.groovy:131) 
    at org.grails.plugin.resource.ResourceProcessor.loadModules(ResourceProcessor.groovy:804) 
    at org.grails.plugin.resource.ResourceProcessor.this$2$loadModules(ResourceProcessor.groovy) 
    at org.grails.plugin.resource.ResourceProcessor$this$2$loadModules.callCurrent(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) 
    at org.grails.plugin.resource.ResourceProcessor.reloadAll(ResourceProcessor.groovy:1075) 
    at org.grails.plugin.resource.ResourceProcessor$reloadAll.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) 
    at ResourcesGrailsPlugin$_closure3.doCall(ResourcesGrailsPlugin.groovy:172) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082) 
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906) 
    at groovy.lang.Closure.call(Closure.java:412) 
    at ResourcesGrailsPlugin$_closure3.call(ResourcesGrailsPlugin.groovy) 
    at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.doWithDynamicMethods(DefaultGrailsPlugin.java:703) 
    at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.doDynamicMethods(DefaultGrailsPluginManager.java:741) 
    at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:174) 
    at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:127) 
    at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:121) 
    at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:107) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
2013-05-21 15:34:38,575 [localhost-startStop-1] ERROR StackTrace - Full Stack Trace: 
java.lang.NullPointerException: Cannot get property 'name' on null object 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117) 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:124) 
    at org.grails.plugin.resource.ResourceProcessor.updateDependencyOrder(ResourceProcessor.groovy:131) 
    at org.grails.plugin.resource.ResourceProcessor.loadModules(ResourceProcessor.groovy:804) 
    at org.grails.plugin.resource.ResourceProcessor.reloadAll(ResourceProcessor.groovy:1075) 
    at ResourcesGrailsPlugin$_closure3.doCall(ResourcesGrailsPlugin.groovy:172) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
2013-05-21 15:34:38,576 [localhost-startStop-1] ERROR resource.ResourceProcessor - Unable to load resources 
java.lang.NullPointerException: Cannot get property 'name' on null object 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117) 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:124) 
    at org.grails.plugin.resource.ResourceProcessor.updateDependencyOrder(ResourceProcessor.groovy:131) 
    at org.grails.plugin.resource.ResourceProcessor.loadModules(ResourceProcessor.groovy:804) 
    at org.grails.plugin.resource.ResourceProcessor.reloadAll(ResourceProcessor.groovy:1075) 
    at ResourcesGrailsPlugin$_closure3.doCall(ResourcesGrailsPlugin.groovy:172) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
2013-05-21 15:34:40,084 [localhost-startStop-1] WARN util.GrailsUtil - [DEPRECATED] Method ConfigurationHolder.getConfig() is deprecated and will be removed in a future version of Grails. 
2013-05-21 15:34:40,092 [localhost-startStop-1] WARN util.GrailsUtil - [DEPRECATED] Method ApplicationHolder.getApplication() is deprecated and will be removed in a future version of Grails. 
2013-05-21 15:34:40,103 [localhost-startStop-1] WARN util.GrailsUtil - [DEPRECATED] Method ApplicationHolder.getApplication() is deprecated and will be removed in a future version of Grails. 
2013-05-21 15:34:40,186 [localhost-startStop-1] WARN util.GrailsUtil - [DEPRECATED] Method ConfigurationHolder.getConfig() is deprecated and will be removed in a future version of Grails. 
2013-05-21 15:34:40,191 [Thread-10] ERROR plugins.DefaultGrailsPlugin - Cannot generate controller logic for scaffolded class true. It is not a domain class! 
2013-05-21 15:34:40,670 [localhost-startStop-1] ERROR StackTrace - Full Stack Trace: 
java.lang.NullPointerException: Cannot get property 'name' on null object 
    at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56) 
    at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169) 
    at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227) 
    at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
... 
... 
... 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
2013-05-21 15:34:40,847 [Thread-10] ERROR StackTrace - Full Stack Trace: 
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:212) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 
    at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.autowireBeanInAutowireByName(ReloadAwareAutowireCapableBeanFactory.java:201) 
    at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.populateBeanInAutowireByName(ReloadAwareAutowireCapableBeanFactory.java:193) 
    at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.autowireBeanProperties(ReloadAwareAutowireCapableBeanFactory.java:181) 
    at org.springframework.beans.factory.config.AutowireCapableBeanFactory$autowireBeanProperties.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
    at org.springframework.beans.factory.config.AutowireCapableBeanFactory$autowireBeanProperties.call(Unknown Source) 
    at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin.configureScaffoldingController(ScaffoldingGrailsPlugin.groovy:116) 
    at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin$configureScaffoldingController.callStatic(Unknown Source) 
    at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin.configureScaffolding(ScaffoldingGrailsPlugin.groovy:90) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082) 
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027) 
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:727) 
    at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44) 
    at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1147) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041) 
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145) 
    at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin$_closure2_closure10.doCall(ScaffoldingGrailsPlugin.groovy:77) 
    at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin$_closure2_closure10.doCall(ScaffoldingGrailsPlugin.groovy) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243) 
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) 
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082) 
    at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106) 
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906) 
    at groovy.lang.Closure.call(Closure.java:412) 
    at groovy.lang.Closure.call(Closure.java:406) 
    at groovy.lang.Closure.run(Closure.java:490) 
    at java.lang.Thread.run(Thread.java:722) 
2013-05-21 15:34:40,849 [Thread-10] ERROR StackTrace - Full Stack Trace: 
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) 
    at java.lang.Thread.run(Thread.java:722) 
2013-05-21 15:34:40,849 [Thread-10] ERROR plugins.DefaultGrailsPlugin - Error configuration scaffolding: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) 
org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) 
    at java.lang.Thread.run(Thread.java:722) 
+0

如果您正在執行第1步,則不需要第2步。請嘗試使用'grails clean && grails compile && grails run-app'。 – dmahapatro

+0

也嘗試過,但grails run-app仍會拋出我粘貼的錯誤。這兩個問題的任何答案? – rajugaadu

+0

看起來你正在從Resources插件獲得NPE。你使用哪個版本的資源插件?使用最新版本[v1.2](http://grails.org/plugin/resources) – dmahapatro

回答

1

你安裝的所有插件spring-security-ui取決於?它們不會自動安裝,如documentation中所述。您可能會錯過jquery,jquery-uifamfamfam插件,它們會註冊某些資源spring-security-ui需求,這將解釋您所看到的堆棧跟蹤。

+0

可能是famfamfam ...我忽略了這一點。 – rajugaadu

+0

我也安裝了jquery和famfamfam插件。我沒有的唯一的東西是郵件和jquery-ui,我不認爲這是強制性的,除非我想利用郵件功能。 – rajugaadu

+1

jquery-ui不是可選的,資源模塊聲明依賴於它。無論是安裝插件還是自己創建一個空的'jquery-ui'資源模塊(儘管在這種情況下您可能會遇到客戶端錯誤)。 –

相關問題