Unit testing 缺少JavaEE实现

Unit testing 缺少JavaEE实现,unit-testing,maven,glassfish,java-ee-6,Unit Testing,Maven,Glassfish,Java Ee 6,我仍然无法使我的单元测试工作。当我执行测试时,我得到ClassFormatException:在类文件javax/ejb/EJBAccessException中,方法中缺少非本机或抽象的代码属性。这是我在我的pom.xml中写的: <dependency> <groupId>org.glassfish</groupId> <artifactId>javaee</artifactId> <version>

我仍然无法使我的单元测试工作。当我执行测试时,我得到
ClassFormatException
:在类文件
javax/ejb/EJBAccessException
中,方法中缺少非本机或抽象的代码属性。这是我在我的
pom.xml
中写的:

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javaee</artifactId>
    <version>6.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

玻璃鱼
java企业版
6
测试
爪哇
JavaEEAPI
6
假如
但它不起作用。如果我在文本编辑器中打开文件
repo/org/glassfish/javaee/6.0/javaee-6.0.jar
,它只包含一些HTML文本。你知道怎么了吗?在哪里可以找到合适的
javaee-6.0.jar
?如果我在
glassfish3/glassfish/lib
中打开一个,它只包含一些
pom.xml
,没有其他内容

我的数据层由通过会话bean访问的实体组成。该层打包并部署为JAR。错误在于表示层的问题。没有EJB。但我使用的是SpringMVC。它在开始时加载控制器。还有几个控制器是EJB客户机。这不重要,但其中一个包含行
importjavax.ejb.ejbaccesexception
。当(假设)Spring加载程序加载此类时,加载过程失败,出现上述异常。因此,我需要javaee实现来继续测试

但这个问题实际上更一般。这不是我第一次遇到这样的错误:依赖项JAR无效,当我查看内部时,我看到了常规HTML代码


顺便说一句:我很惊讶,在整个互联网上,我仍然没有找到这个基本问题的正确答案。

本地存储库已损坏,
jar
文件不应包含
HTML
内容。也许您的某个项目从损坏的远程存储库下载了损坏的工件。可能您当前的项目很好,但另一个项目使用了损坏的镜像等

我会删除整个
repo/org/glassfish/javaee/6.0/
目录。如果需要,Maven将再次下载工件。删除后运行
mvn clean安装
,并检查
org/glassfish/javaee/6.0/javaee-6.0.jar的url
。如果下载的工件(即JAR)再次包含HTML,则会显示哪个存储库已损坏

无论如何,我认为您不需要这种依赖关系,因为
javax.ejb.ejbaccesexception
在API中(
javaeeapi.jar
)。(而且它不在房间里。)
我将删除glassfish依赖项,并尝试首先运行测试。如果仍然失败,我将使用
java-verbose:class
运行测试,并检查哪个
jar
包含加载的
ejbaccesexception.class
本地存储库已损坏,
jar
文件不应包含
HTML
内容。也许您的某个项目从损坏的远程存储库下载了损坏的工件。可能您当前的项目很好,但另一个项目使用了损坏的镜像等

我会删除整个
repo/org/glassfish/javaee/6.0/
目录。如果需要,Maven将再次下载工件。删除后运行
mvn clean安装
,并检查
org/glassfish/javaee/6.0/javaee-6.0.jar的url
。如果下载的工件(即JAR)再次包含HTML,则会显示哪个存储库已损坏

无论如何,我认为您不需要这种依赖关系,因为
javax.ejb.ejbaccesexception
在API中(
javaeeapi.jar
)。(而且它不在房间里。)
我将删除glassfish依赖项,并尝试首先运行测试。如果仍然失败,我将使用
java-verbose:class
运行测试,并检查哪个
jar
包含加载的
ejbaccesexception.class

您能给我们提供更多信息吗。你在做什么单元测试?EJB?你在用什么?朱尼特,阿奎利安?你能给我们更多的信息吗。你在做什么单元测试?EJB?你在用什么?JUnit,Arquillian?我认为另一个
javax.javaeeAPI
就足够了。我不这么认为。(见我更新的帖子——这正是原因所在)。在我的设置中,我有以下内容:
http://download.java.net/maven/glassfish
。在这个repo中只有一些
javaee-3.0-SNAPSHOT.jar
,但不包含任何类文件。它只包含一些Maven元数据,我认为另一个
javax.javaeeAPI
就足够了。我不这么认为。(见我更新的帖子——这正是原因所在)。在我的设置中,我有以下内容:
http://download.java.net/maven/glassfish
。在这个repo中只有一些
javaee-3.0-SNAPSHOT.jar
,但不包含任何类文件。它只包含一些Maven元数据。