Вызывается: java.lang.ClassNotFoundException: org.h2.Driver - PullRequest
0 голосов
/ 08 октября 2019

Причина: java.lang.ClassNotFoundException: org.h2.Driver не может быть найден {моим компонентом}.

Какую возможную ошибку я бы сделал?

Имеюдобавили следующую зависимость:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.192</version>
  </dependency>

И загрузчик классов будет выглядеть так:

  Class.forName("org.h2.Driver");

И я пытаюсь импортировать пакет для сборки OSGi-пакета, как показано ниже:

  com.h2database.*; version ="[1.0.0,3.0.0]"

Я так долго боролся, и ваша помощь была бы признательна!

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Я думаю, что вы импортируете неправильный пакет: вы импортируете пакет com.h2database, но вы используете драйвер из пакета "org.h2"

Кроме того, я думаю вы должны импортировать пакет без ". *" в конце

0 голосов
/ 09 октября 2019

Никогда не используйте Class.forName (String) в OSGi.

Всегда предоставляйте загрузчик классов, если вы хотите загружать классы динамически. Например:

  • this.getClass (). GetClassLoader (). LoadClass (xxx) использует тот же загрузчик классов, который загружал тип текущего объекта.
  • MyType.class.getClassLoader.loadClass (xxx) использует тот же загрузчик классов, который загружал MyType
  • Class.forName (String, true, classLoader)

Также обратите внимание, что вы импортировали не тот пакет.

...