【问题标题】:java.lang.ExceptionInInitializerError at org.apache.derby.jdbc.EmbeddedDataSource.findDriver(Unknown Source)org.apache.derby.jdbc.EmbeddedDataSource.findDriver 处的 java.lang.ExceptionInInitializerError(未知来源)
【发布时间】:2013-11-18 20:27:25
【问题描述】:

我不确定这里的协议是怎样的,但这就是我正在做的。我发现了一个我自己解决的问题,因此我将发布问题并将解决方案分别发布为问题和答案。那么问题来了:

我试图使用 junit、嵌入式 glashfish、JPA 执行单元测试,但在 org.apache.derby.jdbc.EmbeddedDataSource.findDriver(Unknown Source) 出现 java.lang.ExceptionInInitializerError 时遇到了障碍 运行测试后引发。

有什么想法吗?

pom文件有

...
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
</dependency>
<dependency>
    <groupId>org.glassfish.main.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>4.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.10.1.1</version>
</dependency>
...

【问题讨论】:

    标签: unit-testing maven jpa-2.0 derby glassfish-embedded


    【解决方案1】:

    问题在于 pom 文件的依赖项中的顺序。

    Derby 依赖项是在嵌入 glassfish 之后。然后依赖关系就这样了

    ...
    <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>10.10.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>4.0</version>
        <scope>test</scope>
    </dependency>
    ...
    

    看起来像一个愚蠢的解决方案,但我花了几个小时研究直到找到它。希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 2011-11-16
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 2016-12-31
      相关资源
      最近更新 更多