2017-04-25 4 views
1

Interceptors vs Filters下Grailsの3のドキュメントは言う:インターセプタの代わりにGrails 3でフィルタを使用するには?

In versions of Grails prior to Grails 3.0, Grails supported the notion of filters. These are still supported for backwards compatibility but are considered deprecated.

私は3.2をGrailsのために、フィルターを使用していきたいと思い移行大きなGrailsの2.5アプリケーションを持っています。

フィルタをGrails 3で動作させるには?*?

http://docs.grails.org/latest/guide/upgrading.html] [1として、私はcompile 'org.grails:grails-plugin-filters:3.0.12'を追加し、grails-app/confからgrails-app/controllersにフィルタクラスを移動し、その後私は、次の例外を取得:

java.lang.NullPointerException: null 
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1337) 
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1197) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:426) 
    at java.beans.Introspector.getBeanInfo(Introspector.java:173) 
    at groovy.lang.MetaClassImpl$15.run(MetaClassImpl.java:3318) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at groovy.lang.MetaClassImpl.addProperties(MetaClassImpl.java:3316) 
    at groovy.lang.MetaClassImpl.initialize(MetaClassImpl.java:3293) 
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:260) 
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:302) 
    at org.grails.plugins.web.filters.FilterToHandlerAdapter.$getStaticMetaClass(FilterToHandlerAdapter.groovy) 
    at org.grails.plugins.web.filters.FilterToHandlerAdapter.<init>(FilterToHandlerAdapter.groovy:63) 
    at org.grails.plugins.web.filters.FiltersGrailsPlugin.reloadFilters(FiltersGrailsPlugin.groovy:195) 
    at org.grails.plugins.web.filters.FiltersGrailsPlugin.doWithApplicationContext(FiltersGrailsPlugin.groovy:72) 
    at org.grails.plugins.DefaultGrailsPlugin.doWithApplicationContext(DefaultGrailsPlugin.java:523) 
    at org.grails.plugins.AbstractGrailsPluginManager.doPostProcessing(AbstractGrailsPluginManager.java:224) 
    at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy:246) 
    at grails.boot.config.GrailsApplicationPostProcessor.onApplicationEvent(GrailsApplicationPostProcessor.groovy) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:383) 
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:337) 
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) 
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) 
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:372) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:83) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:388) 
    at grails.boot.GrailsApp.run(GrailsApp.groovy:375) 
    at grails.boot.GrailsApp$run.call(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) 
    at app6.Application.main(Application.groovy:8) 
+0

ニースstacktrace!あなたのプロジェクトにコードがありますか?このハローワールドフィルター付き –

+0

ただ、新規に作成した3.2アプリ: '$猫のGrailsアプリ/コントローラ/ APP6/Filter1Filters.groovy パッケージAPP6 クラスFilter1Filters { \t DEFフィルター= { F1(コントローラ: '*'、アクション: '*'){ before = { println "!!" } } } } – Ivan

+0

ちょっと@Ivan、それに解決策はありましたか? – Parth

答えて

0

非常に同じドキュメンテーションは、SEZ:

これらをまだサポートされています

彼らはそのままです。推奨されていないことは、は、をインターセプタで置き換えることを検討することを意味します。

+0

彼らはそのまま動作しません – Ivan

関連する問題