Я пытаюсь обновить проект с JSF 1.2 до 2.2.18.Приложение работает хорошо, и я могу добраться до страниц, но главная проблема заключается в том, что, когда я пытаюсь поиграть с кнопками, я получаю следующее исключение.Я уже искал проблему и пробовал некоторые решения, но ни одно из них не работало, кроме установки javax.faces.PARTIAL_STATE_SAVING
в false
.Но в этом случае поведение страницы меняется, например, текстовое поле появляется внизу страницы.С другой стороны, я даже не уверен, должен ли этот параметр быть установлен на false
.Вот некоторые зависимости:
<dependency>
<groupId>com.github.OpenFaces-org</groupId>
<artifactId>OpenFaces</artifactId>
<version>v3.0-release</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.tomahawk</groupId>
<artifactId>tomahawk21</artifactId>
<version>1.1.14</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.18</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.18</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>6.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
Я очень боюсь, что Tomahawk21 вызывает проблему и не знаю, как ее решить.<t:saveState value="#{refererBean.referer}"/>
Этот тип тегов saveState используется.
Stacktrace:
FINE: No renderer-type for component javax_faces_location_HEAD
Dec 11, 2018 3:19:20 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/addRestrictedArticle.xhtml]
javax.faces.FacesException: Cannot add the same component twice: javax_faces_location_HEAD
at com.sun.faces.context.StateContext$DynamicAddRemoveListener.handleAddRemoveWithAutoPrune(StateContext.java:748)
at com.sun.faces.context.StateContext$DynamicAddRemoveListener.handleAdd(StateContext.java:664)
at com.sun.faces.context.StateContext$AddRemoveListener.processEvent(StateContext.java:347)
at com.sun.faces.context.StateContext$DynamicAddRemoveListener.processEvent(StateContext.java:565)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118)
at com.sun.faces.application.ApplicationImpl.processListenersAccountingForAdds(ApplicationImpl.java:2218)
at com.sun.faces.application.ApplicationImpl.invokeViewListenersFor(ApplicationImpl.java:2036)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:290)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:245)
at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:726)
at org.openfaces.application.OpenFacesApplication.publishEvent(OpenFacesApplication.java:43)
at javax.faces.component.UIComponentBase.publishAfterViewEvents(UIComponentBase.java:2254)
at javax.faces.component.UIComponentBase.doPostAddProcessing(UIComponentBase.java:1935)
at javax.faces.component.UIComponentBase.setParent(UIComponentBase.java:448)
at javax.faces.component.UIComponentBase$FacetsMap.put(UIComponentBase.java:3006)
at javax.faces.component.UIComponentBase$FacetsMap.put(UIComponentBase.java:2966)
at javax.faces.component.UIViewRoot.getComponentResources(UIViewRoot.java:1818)
at javax.faces.component.UIViewRoot.addComponentResource(UIViewRoot.java:521)
at com.sun.faces.application.annotation.ResourceDependencyHandler.pushResourceToRoot(ResourceDependencyHandler.java:126)
at com.sun.faces.application.annotation.ResourceDependencyHandler.apply(ResourceDependencyHandler.java:107)
at com.sun.faces.application.annotation.AnnotationManager.applyAnnotations(AnnotationManager.java:377)
at com.sun.faces.application.annotation.AnnotationManager.applyComponentAnnotations(AnnotationManager.java:279)
at com.sun.faces.application.ApplicationImpl.applyAnnotations(ApplicationImpl.java:1972)
at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1922)
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:926)
at javax.faces.application.ApplicationWrapper.createComponent(ApplicationWrapper.java:335)
at org.openfaces.component.validation.ValidationProcessor.getDefaultPresentationInstance(ValidationProcessor.java:389)
at org.openfaces.component.validation.ValidationSupportResponseWriter.renderPresentationComponent(ValidationSupportResponseWriter.java:344)
at org.openfaces.component.validation.ValidationSupportResponseWriter.handleEditableValueHolder(ValidationSupportResponseWriter.java:300)
at org.openfaces.component.validation.ValidationSupportResponseWriter.processEditableValueHolder(ValidationSupportResponseWriter.java:272)
at org.openfaces.component.validation.ValidationSupportResponseWriter.startElement(ValidationSupportResponseWriter.java:137)
at com.sun.faces.renderkit.html_basic.TextareaRenderer.getEndTextToRender(TextareaRenderer.java:91)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:170)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:456)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at org.apache.myfaces.tomahawk.application.ResourceViewHandlerWrapper.renderView(ResourceViewHandlerWrapper.java:169)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.test.test.web.jsf.view.ExtendedViewHandler.renderView(ExtendedViewHandler.java:56)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
Я надеюсь, что кто-то может дать мне подсказки.
Заранее спасибо.