org.apache.derby.jdbc.EmbeddedDataSource.findDriver(未知来源)中的java.lang.ExceptionInInitializerError

时间:2013-11-18 20:27:26

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

我不确定协议是如何进入的,但这正是我正在做的事情。我找到了一个问题,我解决了自己,所以我发布了问题并分别将解决方案作为问题和答案发布。所以这就是问题所在:

我正在尝试使用junit,嵌入式glashfish,JPA执行单元测试,并在org.apache.derby.jdbc.EmbeddedDataSource.findDriver(未知来源) 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>
...

1 个答案:

答案 0 :(得分: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>
...

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