2012-06-10 2 views
1

당신이 나에게 내 문제에 대한 솔루션을 제공하시기 바랍니다 수있는 경우는, NoSuchMethodException 예외 원인 작동하지 않습니다 내가 시로 사용하면 : hasRole 태그 또는 다른 태그를 발생 된 예외는 말한다 다음 시로 보안이 적용되고 사용자가 인증 및 응용 프로그램의 리소스에 액세스 할 수있는 권한이 있어야합니다 어디에 자원을 보호함으로써 내가 올바른 시로 구성이<시로 : hasRole은 ..> 태그 <p></p> 내가 아파치 시로와 통합을 가지고 있고,

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) 

알 수 있습니다.

하지만 시로 보안 태그를 포함 시키려고하면 예외가 표시됩니다.

HasRoleTag와 같은 shiro 자바 태그를 열고 실제로 매개 변수로 javax.faces.view.facelets.TagConfig 의 인스턴스를 가져 오는 생성자가 없습니다!

문제 해결을 도와 주시겠습니까?

감사합니다.

답변

1

버전 1.2부터 Shiro는 JSF 지원과 함께 제공되지 않습니다. 보고있는 태그는 JSP 태그입니다. Deluan Quintão는 shiro 용 JSF facelet 태그 세트를 작성했습니다. 당신은 여기에 그들을 사용하여 그의 게시물을 읽을 수 있습니다 : http://techbeats.deluan.com/apache-shiro-tags-for-jsffacelets

그의 작품은 공식적으로 1.3 시로에 통합됩니다. (실제로 이미 트렁크에 있음)

+0

나는 그의 게시물을 읽었지만 JSF 1.x에 대해 이야기했고 나는 JSF 2.x에서 일하고있다. 또한 facelets 처리기와 관련된 다른 유형의 예외로 시도했습니다. –

+0

JSF2와 링크에서 라이브러리를 사용하고 있으며 특히 HasRole 태그를 사용합니다. 내가 수행 한 작업에 대한 자세한 내용을 제공해야한다고 생각합니다. 오류가 발생합니다. 좀 더 도움이 필요하면 –