2015-09-01 3 views
1

Я создал проект в Maven с WildFly, Java 8 и ICEfaces 4.0.0. В p.m.xml Maven я добавил зависимости ICEfaces и ICEfaces-ACE. Компоненты ACE отображаются правильно, но если я нажимаю на любой компонент я получаю эту ошибку:javax.faces.FacesException: не удается добавить один и тот же компонент дважды: javascript_runner

20:49:44,035 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (default task-8) Error Rendering View[/person.xhtml]: javax.faces.FacesException: Cannot add the same component twice: javascript_runner 
    at com.sun.faces.context.StateContext$DynamicAddRemoveListener.handleAddRemoveWithAutoPrune(StateContext.java:748) 
    at com.sun.faces.context.StateContext$DynamicAddRemoveListener.handleAdd(StateContext.java:675) 
    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 org.jboss.as.jsf.injection.weld.ForwardingApplication.publishEvent(ForwardingApplication.java:299) 
    at javax.faces.component.UIComponentBase.publishAfterViewEvents(UIComponentBase.java:2253) 
    at javax.faces.component.UIComponentBase.doPostAddProcessing(UIComponentBase.java:1934) 
    at javax.faces.component.UIComponentBase.setParent(UIComponentBase.java:447) 
    at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2687) 
    at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2659) 
    at javax.faces.component.UIViewRoot.addComponentResource(UIViewRoot.java:533) 
    at org.icefaces.impl.event.JavaScriptRunnerSetup.processEvent(JavaScriptRunnerSetup.java:66) 
    at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108) 
    at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118) 
    at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2169) 
    at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2142) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:301) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:245) 
    at org.jboss.as.jsf.injection.weld.ForwardingApplication.publishEvent(ForwardingApplication.java:299) 
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:856) 
    at javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:985) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:430) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    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:655) 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86) 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72) 
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

20:49:44,097 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (default task-8) javax.faces.FacesException: Cannot add the same component twice: javascript_runner 
    at com.sun.faces.context.StateContext$DynamicAddRemoveListener.handleAddRemoveWithAutoPrune(StateContext.java:748) 
    at com.sun.faces.context.StateContext$DynamicAddRemoveListener.handleAdd(StateContext.java:675) 
    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 org.jboss.as.jsf.injection.weld.ForwardingApplication.publishEvent(ForwardingApplication.java:299) 
    at javax.faces.component.UIComponentBase.publishAfterViewEvents(UIComponentBase.java:2253) 
    at javax.faces.component.UIComponentBase.doPostAddProcessing(UIComponentBase.java:1934) 
    at javax.faces.component.UIComponentBase.setParent(UIComponentBase.java:447) 
    at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2687) 
    at javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2659) 
    at javax.faces.component.UIViewRoot.addComponentResource(UIViewRoot.java:533) 
    at org.icefaces.impl.event.JavaScriptRunnerSetup.processEvent(JavaScriptRunnerSetup.java:66) 
    at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108) 
    at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118) 
    at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2169) 
    at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2142) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:301) 
    at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:245) 
    at org.jboss.as.jsf.injection.weld.ForwardingApplication.publishEvent(ForwardingApplication.java:299) 
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:856) 
    at javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:985) 
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:430) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:133) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 
    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:655) 
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86) 
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) 
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) 
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) 
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72) 
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282) 
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261) 
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80) 
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172) 
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199) 
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Это мой build.xml. Я исключил javax.faces из org.icefaces, потому что он поставляется с WildFly, и я получаю другие ошибки («ConfigurationException: тег с именем inputFile из пространства имен http://xmlns.jcp.org/jsf/html имеет нулевой класс обработчика», если я его не удаляю.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>Prototyp</groupId> 
    <artifactId>Prototyp</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <properties> 

     <!-- Generic properties --> 
     <java.version>1.8</java.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 

     <!-- Spring --> 
     <spring-framework.version>4.0.3.RELEASE</spring-framework.version> 
     <aspectj.version>1.7.4</aspectj.version> 

     <!-- Hibernate/JPA --> 
     <hibernate.version>4.3.5.Final</hibernate.version> 

     <!-- Logging --> 
     <logback.version>1.0.13</logback.version> 
     <slf4j.version>1.7.5</slf4j.version> 


    </properties> 

    <dependencies> 


     <!-- Spring and Transactions --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 
     <!-- @Inject --> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <!-- AspectJ --> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${aspectj.version}</version> 
     </dependency> 
     <!-- Spring ORM support --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring-framework.version}</version> 
     </dependency> 

     <!-- Hibernate --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 

     <!-- Logging with SLF4J & LogBack --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${slf4j.version}</version> 
      <scope>compile</scope> 
     </dependency> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>${logback.version}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <!-- http://repo1.maven.org/maven --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet.jsp</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc6</artifactId> 
      <version>11.2.0</version> 
     </dependency> 



     <dependency> 
      <groupId>org.icefaces</groupId> 
      <artifactId>icefaces</artifactId> 
      <version>4.0.0</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.glassfish</groupId> 
        <artifactId>javax.faces</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 


     <dependency> 
      <groupId>org.icefaces</groupId> 
      <artifactId>icefaces-ace</artifactId> 
      <version>4.0.0</version> 

     </dependency> 



    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <warSourceDirectory>WebContent</warSourceDirectory> 
        <outputDirectory>C:\wildfly-9.0.1.Final\standalone\deployments</outputDirectory> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
     <finalName>${project.artifactId}</finalName> 
    </build> 
</project> 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> 
    <display-name>Person verwalten</display-name> 
    <welcome-file-list> 
    <welcome-file>person.xhtml</welcome-file> 
    </welcome-file-list> 
    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <listener> 
    <listener-class> 
      org.springframework.web.context.request.RequestContextListener</listener-class> 
    </listener> 

    <servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 
</web-app> 
+0

Кажется, что это общая проблема, возможно, посмотрите здесь на решение: http://stackoverflow.com/questions/18873085/jsf-javax-faces-facesexception-cannot-add-the-same-component-twice-vaz4n2 -ret –

+0

@BalusC ваш ответ был прав. Используя IceFaces 4.1, проблема решена! Другая ошибка заключалась в том, что у моего index.xhtml были некоторые ошибки формы. Пожалуйста, добавьте свой ответ, чтобы я мог его принять. Спасибо огромное! – Johnny2012

+0

Спасибо, Маттиас, я уже посмотрел другие сообщения – Johnny2012

ответ