Как выполнить сканирование JAR в моем приложении с весенней загрузкой, когда у меня есть предупреждения «Не удалось [...] сканировать»? - PullRequest
1 голос
/ 03 июня 2019

У меня есть несколько предупреждений, когда я использую java 11 вместо java 8, потому что некоторые из новых зависимостей (jaxb, jaxws).Сообщение:

WARN  o.a.t.u.s.StandardJarScanner.log - Failed to scan [...] from classloader hierarchy

Для большого количества JAR (некоторые примеры: jaxb-api.jar, txw2-2.4.0-b180830.0438.jar, istack-commons-runtime-3.0.7.jar ...)

Чтобы решить эту проблему, я могу добавить в свой файл @Configuration

@Bean
      public TomcatServletWebServerFactory tomcatFactory() {
        return new TomcatServletWebServerFactory() {
          @Override
          protected void postProcessContext(Context context) {
            ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
          }
        };
      }

, который пропускает сканирование JAR для всех JAR.

Так что мой вопросесть, что это за сканирование JAR и нужно ли оно мне?Кроме того, я знаю, что могу добавить jar в catalina.properties для tomcat.util.scan.StandardJarScanFilter.jarsToSkip, но могу ли я сделать это в моем приложении для весенней загрузки?

1 Ответ

0 голосов
/ 04 июня 2019

Так что я до сих пор не знаю, как использовать сканирование JAR, но я нашел способ просто исключить определенные пакеты, связанные с jaxb.Добавьте это в файл @Configuration

@Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        return new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                Set<String> pattern = new LinkedHashSet<>();

                pattern.add("jaxb*.jar");
                pattern.add("jaxws*.jar");          

                StandardJarScanFilter filter = new StandardJarScanFilter();
                filter.setTldSkip(StringUtils.collectionToCommaDelimitedString(pattern));

                ((StandardJarScanner) context.getJarScanner()).setJarScanFilter(filter);

            }
        };
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...