原因:java.lang.ClassNotFoundException:org.h2.Driver

问题描述 投票:0回答:2

由:{my Component}找不到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]"

我奋斗了很长时间,您的帮助将不胜感激!

osgi h2
2个回答
1
投票

我认为您正在导入错误的程序包:您正在导入程序包com.h2database,但是您在程序包“ org.h2”中使用了驱动程序

另外,我认为您必须导入一个末尾没有“。*”的软件包


0
投票

请勿在OSGi中使用Class.forName(String)。>>

如果要动态加载类,请始终提供一个类加载器。例如:

  • this.getClass()。getClassLoader()。loadClass(xxx)使用加载当前对象类型的相同类加载器。
  • MyType.class.getClassLoader.loadClass(xxx)
  • 使用与加载MyType相同的类加载器
  • Class.forName(String,true,classLoader)
  • 还请注意,您导入了错误的程序包。

© www.soinside.com 2019 - 2024. All rights reserved.