docker 启功spring boot 报错could not create Vfs.Dir from url, no matching UrlType was found

org.reflections.ReflectionsException: could not create Vfs.Dir from url, no matching UrlType was found [file:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/libatk-wrapper.so]
either use fromURL(final URL url, final List<UrlType> urlTypes) or use the static setDefaultURLTypes(final List<UrlType> urlTypes) or addDefaultURLTypes(UrlType urlType) with your specialized UrlType.
    at org.reflections.vfs.Vfs.fromURL(Vfs.java:109) ~[reflections-0.9.10.jar!/:na]
    at org.reflections.vfs.Vfs.fromURL(Vfs.java:91) ~[reflections-0.9.10.jar!/:na]
    at org.reflections.Reflections.scan(Reflections.java:237) [reflections-0.9.10.jar!/:na]
    at org.reflections.Reflections.scan(Reflections.java:204) [reflections-0.9.10.jar!/:na]
    at org.reflections.Reflections.<init>(Reflections.java:129) [reflections-0.9.10.jar!/:na]
    at org.reflections.Reflections.<init>(Reflections.java:170) [reflections-0.9.10.jar!/:na]
    at org.reflections.Reflections.<init>(Reflections.java:143) [reflections-0.9.10.jar!/:na]
    at io.katharsis.resource.registry.DefaultResourceLookup.<init>(DefaultResourceLookup.java:27) [katharsis-core-2.4.2.jar!/:na]
    at io.katharsis.resource.registry.ResourceRegistryBuilder.build(ResourceRegistryBuilder.java:38) [katharsis-core-2.4.2.jar!/:na]
    at io.katharsis.spring.boot.KatharsisRegistryConfiguration.resourceRegistry(KatharsisRegistryConfiguration.java:36) [katharsis-spring-2.4.2.jar!/:na]
    at io.katharsis.spring.boot.KatharsisRegistryConfiguration$$EnhancerBySpringCGLIB$$e5b864ad.CGLIB$resourceRegistry$0(<generated>) [katharsis-spring-2.4.2.jar!/:na]
    at io.katharsis.spring.boot.KatharsisRegistryConfiguration$$EnhancerBySpringCGLIB$$e5b864ad$$FastClassBySpringCGLIB$$2c6d529a.invoke(<generated>) [katharsis-spring-2.4.2.jar!/:na]
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) [spring-core-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:356) [spring-context-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at io.katharsis.spring.boot.KatharsisRegistryConfiguration$$EnhancerBySpringCGLIB$$e5b864ad.resourceRegistry(<generated>) [katharsis-spring-2.4.2.jar!/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_102]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_102]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_102]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_102]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:207) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1214) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1054) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1019) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:566) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:349) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:372) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
    at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:233) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.web.servlet.ServletContextInitializerBeans.getOrderedBeansOfType(ServletContextInitializerBeans.java:214) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.web.servlet.ServletContextInitializerBeans.addServletContextInitializerBeans(ServletContextInitializerBeans.java:90) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.web.servlet.ServletContextInitializerBeans.<init>(ServletContextInitializerBeans.java:78) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getServletContextInitializerBeans(EmbeddedWebApplicationContext.java:241) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.selfInitialize(EmbeddedWebApplicationContext.java:228) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.access$000(EmbeddedWebApplicationContext.java:89) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext$1.onStartup(EmbeddedWebApplicationContext.java:213) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.springframework.boot.context.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:55) [spring-boot-1.4.0.RELEASE.jar!/:1.4.0.RELEASE]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5167) [tomcat-embed-core-8.5.4.jar!/:8.5.4]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) [tomcat-embed-core-8.5.4.jar!/:8.5.4]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) [tomcat-embed-core-8.5.4.jar!/:8.5.4]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) [tomcat-embed-core-8.5.4.jar!/:8.5.4]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_102]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_102]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_102]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_102]
package com.zhada.cloud.common.utils;


import com.zhada.cloud.common.annotations.AuthorizeConfiguration;
import com.zhada.cloud.common.annotations.MenuConfiguration;
import com.zhada.cloud.common.base.ActionInfoModel;
import com.zhada.cloud.common.base.MenuModel;
import org.reflections.Reflections;
import org.reflections.scanners.*;
import org.reflections.util.ConfigurationBuilder;
import org.reflections.vfs.Vfs;

import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;


public final class MenuAnnoManageUtils {

    static MenuAnnoManageUtils instance;
    Map<Integer, MenuModel> menuMap;
    Map<Integer, List<ActionInfoModel>> authorizeMap;

    public Map<Integer, MenuModel> getMenuMap() {
        return menuMap;
    }

    public Map<Integer, List<ActionInfoModel>> getAuthorizeMap() {
        return authorizeMap;
    }

    private MenuAnnoManageUtils() {
        menuMap = new ConcurrentHashMap<Integer, MenuModel>();
        authorizeMap = new ConcurrentHashMap<Integer, List<ActionInfoModel>>();
    }

    public MenuModel find(Integer id) {
        if (menuMap.containsKey(id)) {
            return menuMap.get(id);
        }
        return null;
    }

    public List<ActionInfoModel> getAuthorizes(int menuId) {
        return authorizeMap.get(menuId);
    }


    /**
     * @param prefixPackage 扫描包的路径
     * @return
     */
    public static MenuAnnoManageUtils GetInstance(String prefixPackage) {
        if (instance == null) {
            instance = new MenuAnnoManageUtils();
            Vfs.addDefaultURLTypes(
                    new Vfs.UrlType() {
                        public boolean matches(URL url) {
                            return url.getProtocol().equals("vfs");
                        }

                        public Vfs.Dir createDir(URL url) throws Exception {
                            return Vfs.DefaultUrlTypes.jarUrl.createDir(url);
                        }
                    }
            );
        }
        Reflections reflections = new Reflections(new ConfigurationBuilder()
                .forPackages("com.boothsun.reflections") // 指定路径URL
                .addScanners(new SubTypesScanner()) // 添加子类扫描工具
                .addScanners(new FieldAnnotationsScanner()) // 添加 属性注解扫描工具
                .addScanners(new MethodAnnotationsScanner() ) // 添加 方法注解扫描工具
                .addScanners(new MethodParameterScanner() ) // 添加方法参数扫描工具
        );
        //反射工具包,指明扫描路径
        /*Reflections reflections = new Reflections(prefixPackage, new SubTypesScanner(),
                new TypeAnnotationsScanner(), new MethodAnnotationsScanner(),
                new MethodParameterNamesScanner());*/
        //获取带Handler注解的类
        Set<Class<?>> classList = reflections.getTypesAnnotatedWith(MenuConfiguration.class);
        for (Class<?> classes : classList) {
            MenuConfiguration t = (MenuConfiguration) classes.getAnnotation(MenuConfiguration.class);
            MenuModel model = new MenuModel(t.type(), classes.getName());
            model.setDescribe(t.type().getDesc());
            instance.menuMap.put(model.getId(), model);
            List<ActionInfoModel> authorizes;
            if (instance.authorizeMap.containsKey(model.getId())) {
                authorizes = instance.authorizeMap.get(model.getId());
            } else {
                authorizes = new ArrayList<ActionInfoModel>();
                instance.authorizeMap.put(model.getId(), authorizes);
            }
            for (Method method : classes.getMethods()) {
                AuthorizeConfiguration t1 = method.getAnnotation(AuthorizeConfiguration.class);
                if (t1 != null) {
                    ActionInfoModel actionInfoModel = new ActionInfoModel(t1.type(), t.type());
                    if (ListHelper.filter(authorizes, actionInfoModel) == null) {
                        authorizes.add(actionInfoModel);
                    }
                }
            }
        }
        return instance;
    }

}
<dependency>
      <groupId>org.reflections</groupId>
      <artifactId>reflections</artifactId>
      <version>0.9.12</version>
    </dependency>
    <dependency>

猜你喜欢

转载自blog.csdn.net/wang0112233/article/details/109843929