Primefaces CustomResourceHandler->;版本号被添加到资源中两次

Primefaces CustomResourceHandler->;版本号被添加到资源中两次,primefaces,primefaces-extensions,Primefaces,Primefaces Extensions,我已经编写了一个CustomResourceHandler来为我的js和css文件添加一个版本号,这很好,但是所有primefaces资源现在都得到了一个双倍的版本号 没有CustomResourceHandler: javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17 javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primef

我已经编写了一个CustomResourceHandler来为我的js和css文件添加一个版本号,这很好,但是所有primefaces资源现在都得到了一个双倍的版本号

没有CustomResourceHandler:

javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17
javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17&v=6.0.17
public class ExtendedResourceHandler extends PrimeResourceHandler {

    public ExtendedResourceHandler(ResourceHandler wrapped) {
        super(wrapped);
    }

    @Override
    public Resource createResource(String resourceName, String libraryName) {

        if (!org.primefaces.util.Constants.LIBRARY.equalsIgnoreCase(libraryName)
                && !org.primefaces.extensions.util.Constants.LIBRARY.equalsIgnoreCase(libraryName) && !"javax.faces".equalsIgnoreCase(libraryName) && resourceName != null
                && (resourceName.endsWith(".css") || resourceName.endsWith(".js"))) {
            final Resource resource = super.createResource(resourceName, libraryName);
            if (resource == null) {
                return null;
            }

            return new ResourceWrapper() {

                @Override
                public String getRequestPath() {
                    String resultPath = super.getRequestPath();

                    resultPath += (resultPath.contains("?") ? "&" : "?") + "version=V6326";

                    return resultPath;
                }

                @Override
                public Resource getWrapped() {
                    return resource;
                }
            };
        } else {
            return super.createResource(resourceName, libraryName);

        }
    }

}
使用CustomResourceHandler:

javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17
javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17&v=6.0.17
public class ExtendedResourceHandler extends PrimeResourceHandler {

    public ExtendedResourceHandler(ResourceHandler wrapped) {
        super(wrapped);
    }

    @Override
    public Resource createResource(String resourceName, String libraryName) {

        if (!org.primefaces.util.Constants.LIBRARY.equalsIgnoreCase(libraryName)
                && !org.primefaces.extensions.util.Constants.LIBRARY.equalsIgnoreCase(libraryName) && !"javax.faces".equalsIgnoreCase(libraryName) && resourceName != null
                && (resourceName.endsWith(".css") || resourceName.endsWith(".js"))) {
            final Resource resource = super.createResource(resourceName, libraryName);
            if (resource == null) {
                return null;
            }

            return new ResourceWrapper() {

                @Override
                public String getRequestPath() {
                    String resultPath = super.getRequestPath();

                    resultPath += (resultPath.contains("?") ? "&" : "?") + "version=V6326";

                    return resultPath;
                }

                @Override
                public Resource getWrapped() {
                    return resource;
                }
            };
        } else {
            return super.createResource(resourceName, libraryName);

        }
    }

}
我的CustomResourceHandler:

javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17
javax.faces.resource/jquery/jquery-plugins.js.xhtml?ln=primefaces&v=6.0.17&v=6.0.17
public class ExtendedResourceHandler extends PrimeResourceHandler {

    public ExtendedResourceHandler(ResourceHandler wrapped) {
        super(wrapped);
    }

    @Override
    public Resource createResource(String resourceName, String libraryName) {

        if (!org.primefaces.util.Constants.LIBRARY.equalsIgnoreCase(libraryName)
                && !org.primefaces.extensions.util.Constants.LIBRARY.equalsIgnoreCase(libraryName) && !"javax.faces".equalsIgnoreCase(libraryName) && resourceName != null
                && (resourceName.endsWith(".css") || resourceName.endsWith(".js"))) {
            final Resource resource = super.createResource(resourceName, libraryName);
            if (resource == null) {
                return null;
            }

            return new ResourceWrapper() {

                @Override
                public String getRequestPath() {
                    String resultPath = super.getRequestPath();

                    resultPath += (resultPath.contains("?") ? "&" : "?") + "version=V6326";

                    return resultPath;
                }

                @Override
                public Resource getWrapped() {
                    return resource;
                }
            };
        } else {
            return super.createResource(resourceName, libraryName);

        }
    }

}
faces-config.xml:

<resource-handler>de.sync4.cockpit.web.beans.resourcehandler.ExtendedResourceHandler</resource-handler>
de.sync4.capcket.web.beans.resourcehandler.ExtendedResourceHandler

由于这个问题,我无法让pe:ckEditor工作,因为它找不到必要的资源。知道我的处理程序出了什么问题吗?

发现了问题。我需要扩展ResourceHandlerWrapper,而不是PrimeResourceHandler

我还有一个扩展BeanelResolver。如果基本对象是我的自定义处理程序的实例,我必须在那里返回null