1

私の問題の解決策を教えてください。

私は Apache Shiro と統合しており、shiro:hasRole タグまたは他のタグを使用すると、例外がスローされました。

Caused by: java.lang.NoSuchMethodException: org.apache.shiro.web.tags.HasRoleTag.<init>(javax.faces.view.facelets.TagConfig)
    at java.lang.Class.getConstructor0(Class.java:2706)
    at java.lang.Class.getConstructor(Class.java:1657)
    at com.sun.faces.facelets.tag.AbstractTagLibrary$HandlerFactory.createHandler(AbstractTagLibrary.java:187)
    at com.sun.faces.facelets.tag.AbstractTagLibrary.createTagHandler(AbstractTagLibrary.java:678)
    at com.sun.faces.facelets.tag.CompositeTagLibrary.createTagHandler(CompositeTagLibrary.java:184)
    at com.sun.faces.facelets.compiler.TagUnit.createFaceletHandler(TagUnit.java:120)
    at com.sun.faces.facelets.compiler.TextUnit.createFaceletHandler(TextUnit.java:117)
    at com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:115)
    at com.sun.faces.facelets.compiler.TagUnit.getNextHandler(TagUnit.java:124)
    at com.sun.faces.facelets.tag.AbstractTagLibrary$ComponentConfigWrapper.getNextHandler(AbstractTagLibrary.java:230)
    at javax.faces.view.facelets.TagHandler.<init>(TagHandler.java:116)
    at javax.faces.view.facelets.MetaTagHandler.<init>(MetaTagHandler.java:105)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.<init>(DelegatingMetaTagHandler.java:69)
    at javax.faces.view.facelets.ComponentHandler.<init>(ComponentHandler.java:128)
    at com.sun.faces.facelets.tag.jsf.html.HtmlComponentHandler.<init>(HtmlComponentHandler.java:75)
    at sun.reflect.GeneratedConstructorAccessor19.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.sun.faces.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory.createHandler(AbstractTagLibrary.java:306)
    at com.sun.faces.facelets.tag.AbstractTagLibrary.createTagHandler(AbstractTagLibrary.java:678)
    at com.sun.faces.facelets.tag.CompositeTagLibrary.createTagHandler(CompositeTagLibrary.java:184)
    at com.sun.faces.facelets.compiler.TagUnit.createFaceletHandler(TagUnit.java:120)
    at com.sun.faces.facelets.compiler.TextUnit.createFaceletHandler(TextUnit.java:117)
    at com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:115)
    at com.sun.faces.facelets.compiler.TagUnit.getNextHandler(TagUnit.java:124)
    at com.sun.faces.facelets.tag.AbstractTagLibrary$ComponentConfigWrapper.getNextHandler(AbstractTagLibrary.java:230)
    at javax.faces.view.facelets.TagHandler.<init>(TagHandler.java:116)
    at javax.faces.view.facelets.MetaTagHandler.<init>(MetaTagHandler.java:105)
    at javax.faces.view.facelets.DelegatingMetaTagHandler.<init>(DelegatingMetaTagHandler.java:69)
    at javax.faces.view.facelets.ComponentHandler.<init>(ComponentHandler.java:128)
    at com.sun.faces.facelets.tag.jsf.html.HtmlComponentHandler.<init>(HtmlComponentHandler.java:75)
    at sun.reflect.GeneratedConstructorAccessor19.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.sun.faces.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory.createHandler(AbstractTagLibrary.java:306)

shiro セキュリティが適用され、リソースが保護されている正しい shiro 構成があることに注意してください。ここでは、アプリケーション リソースへのアクセスをユーザーが認証および承認する必要があります。

しかし、shiro セキュリティ タグを含めようとすると、例外が発生します。

HasRoleTag などの shiro Java タグを開きますがjavax.faces.view.facelets.TagConfig 、パラメーターとしてのインスタンスを取るコンストラクターは実際にはありません。

問題を解決するのを手伝ってくれませんか。

ありがとう。

4

1 に答える 1