java.lang.ClassFormatError:类文件javax/jms/jmsception中非本机或抽象的方法中缺少代码属性

java.lang.ClassFormatError:类文件javax/jms/jmsception中非本机或抽象的方法中缺少代码属性,java,maven,junit,jms,mockito,Java,Maven,Junit,Jms,Mockito,我在运行junit测试用例时遇到以下问题,类如下所示: 公共类RoeSubmissionBeanTest{ RoeSubmissionBean roeSubmissionBean; ServiceActivation serviceAct = new ServiceActivation(); UpdateTimeResponse updateTimeResponse = new UpdateTimeResponse(); RoEUpdateSuccessfulDT roeUpdateSucces

我在运行junit测试用例时遇到以下问题,类如下所示:

公共类RoeSubmissionBeanTest{

RoeSubmissionBean roeSubmissionBean;
ServiceActivation serviceAct = new ServiceActivation();
UpdateTimeResponse updateTimeResponse = new UpdateTimeResponse();
RoEUpdateSuccessfulDT roeUpdateSucces;
MessageIdentification msgID;
ExchangeFaultData faultMessage;
@Before
public void setUp() throws Exception  {
//它在这方面失败了

    roeSubmissionBean = Mockito.mock(RoeSubmissionBean.class);
    serviceAct = Mockito.mock(ServiceActivation.class);
    updateTimeResponse =  Mockito.mock(UpdateTimeResponse.class);
    roeUpdateSucces =  Mockito.mock(RoEUpdateSuccessfulDT.class);
    doCallRealMethod().when(roeSubmissionBean).sendMessage(roeUpdateSucces, msgID, faultMessage);
}
主要方法是

公共类提交bean{

private Logger logger = LoggerFactory.getLogger(RoeSubmissionBean.class);
private JMSSender sender = new JMSSender(RoeSubmissionBean.class);
}

我在这里尝试了一些问题,我必须在POM中添加依赖项,但仍然得到相同的错误

错误: java.lang.ClassFormatError:类文件javax/jms/jmsception中非本机或抽象的方法中缺少代码属性

    {  at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
    at org.mockito.cglib.core.ReflectUtils.addAllMethods(ReflectUtils.java:349)
    at org.mockito.cglib.proxy.Enhancer.getMethods(Enhancer.java:422)
    at org.mockito.cglib.proxy.Enhancer.generateClass(Enhancer.java:457)

}

验证您在pom中没有多次导入javaee api,将其删除或放在Dependencies的末尾。我只有一个javaee api条目,现在我已经将其移到了末尾,仍然会收到相同的错误javax javaee api尝试删除它,它可能与另一个Dependencies一起导入。答案如下(已在相关章节中链接)