首页 > 解决方案 > Primefaces 8 - CONFIGURATION FAILED! Must have a Constructor that takes in a BehaviorConfig

问题描述

I'm tryng to developer a Java Web Application with on TomEE Plume 9.0. I want use PrimeFaces 8 (+ PrimeFaces theme Sapphire) and EclipseLin for JPA.

So, my pom.xml is:

<project ...>
    <modelVersion>4.0.0</modelVersion>

    <groupId>it.drloki</groupId>
    <artifactId>INTERNI</artifactId>
    <version>0.5.0</version>
    <packaging>war</packaging>

    <name>INTERNI</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.core</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.asm</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.antlr</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
        </dependency>
        
        <!-- Custom libraries -->
        <dependency>
            <groupId>com.github.librepdf</groupId>
            <artifactId>openpdf</artifactId>
            <version>1.3.20</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
            <artifactId>owasp-java-html-sanitizer</artifactId>
            <version>20191001.1</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.10.6</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>8.0.4</version>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>sapphire</artifactId>
            <version>2.0.2</version>
            <exclusions>
                <exclusion>
                    <groupId>org.glassfish</groupId>
                    <artifactId>javax.faces</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        [...]
    </build>

</project>

No error on building, but when run application, I have this error:

30-Sep-2020 21:10:51.271 SEVERE [http-nio-8080-exec-12] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [com.sun.faces.config.ConfigureListener]
        java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Must have a Constructor that takes in a BehaviorConfig
            at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:284)
            at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4676)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5139)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
            at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631)
            at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:487)
            at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1642)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:288)
            at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809)
            at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
            at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1593)
            at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:1022)
            at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:355)
            at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:626)
            at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:733)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
            at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:666)
            at org.apache.catalina.valves.RequestFilterValve.process(RequestFilterValve.java:348)
            at org.apache.catalina.valves.RemoteAddrValve.invoke(RemoteAddrValve.java:53)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
            at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
            at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
            at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.base/java.lang.Thread.run(Thread.java:834)
        Caused by: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Must have a Constructor that takes in a BehaviorConfig
            at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:358)
            at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:206)
            ... 47 more
        Caused by: jakarta.faces.view.facelets.FaceletException: Must have a Constructor that takes in a BehaviorConfig
            at com.sun.faces.facelets.tag.AbstractTagLibrary$UserBehaviorHandlerFactory.<init>(AbstractTagLibrary.java:473)
            at com.sun.faces.facelets.tag.AbstractTagLibrary.addBehavior(AbstractTagLibrary.java:620)
            at com.sun.faces.facelets.tag.TagLibraryImpl.putBehavior(TagLibraryImpl.java:70)
            at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processBehavior(FaceletTaglibConfigProcessor.java:369)
            at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTags(FaceletTaglibConfigProcessor.java:337)
            at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.processTagLibrary(FaceletTaglibConfigProcessor.java:276)
            at com.sun.faces.config.processor.FaceletTaglibConfigProcessor.process(FaceletTaglibConfigProcessor.java:232)
            at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:342)
            ... 48 more
        Caused by: java.lang.NoSuchMethodException: org.primefaces.behavior.ajax.AjaxBehaviorHandler.<init>(jakarta.faces.view.facelets.BehaviorConfig)
            at java.base/java.lang.Class.getConstructor0(Class.java:3349)
            at java.base/java.lang.Class.getConstructor(Class.java:2151)
            at com.sun.faces.facelets.tag.AbstractTagLibrary$UserBehaviorHandlerFactory.<init>(AbstractTagLibrary.java:471)
            ... 55 more

I try to change pom.xml adding com.sun.faces.jsf-api and/or com.sun.faces.jsf-impl, but I obtain other errors... :-\

Any suggestion? Thanks in advance

标签: javamavenjsfprimefacesapache-tomee

解决方案


推荐阅读