java.lang.ClassFormatError:类文件javax/jms/jmsception中非本机或抽象的方法中缺少代码属性
我在运行junit测试用例时遇到以下问题,类如下所示: 公共类RoeSubmissionBeanTest{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
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一起导入。答案如下(已在相关章节中链接)