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

问题描述 投票:0回答:1

当我运行 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);
}

主要方法是

公共类 RoeSubmissionBean {

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

}

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

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

    {  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)

}

java maven junit jms mockito
1个回答
0
投票

此异常表明您的类路径中没有类。验证 pom.xml 文件中的依赖项及其范围。

另一个错误有时是本地存储库中的 jar 已损坏并且类的字节码不存在。

可以在依赖中找到javax.jms.JMSException类:

<dependency>
    <groupId>javax.jms</groupId>
    <artifactId>javax.jms-api</artifactId>
    <version>2.0.1</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.