Java 在解组XML文件时获取ClassCastException(JAXBContext传递正确的类名)

Java 在解组XML文件时获取ClassCastException(JAXBContext传递正确的类名),java,xml,jaxb,Java,Xml,Jaxb,我有一个调用此方法的代码。我在解组时收到ClassCastException。我在创建JAXBContext对象时传递了正确的类名 public TestsuiteType parseTestSuiteXML(String path) throws JAXBException, FileNotFoundException { JAXBContext context = JAXBContext.newInstance(TestsuiteType.class); Un

我有一个调用此方法的代码。我在解组时收到ClassCastException。我在创建
JAXBContext
对象时传递了正确的类名

public TestsuiteType parseTestSuiteXML(String path) throws JAXBException, FileNotFoundException {
        JAXBContext context = JAXBContext.newInstance(TestsuiteType.class);
        Unmarshaller um = context.createUnmarshaller();
        TestsuiteType ts = (TestsuiteType) um.unmarshal(new FileReader("/Users/admin/Documents/workspace_Nishant_dev/Practice/xmls/TEST-junit.xml"));
        List<TestcaseType> tcs = ts.getTestcase();
        Iterator<TestcaseType> it = tcs.iterator();
        while(it.hasNext()) {
            TestcaseType tc = it.next();
            if(tc.getContent().size() == 0) {
                tcs.remove(tc);
            }
        }
        return ts;
    }

您得到的是
JAXBElement
,而不是
TestSuiteType
。您的值位于
jaxbElement.getValue()

中,非常感谢。上面提到的问题已经解决了,但TestcaseType tc=it.next()中仍然出现错误;线程“main”java.util.ConcurrentModificationException中的异常位于java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)java.util.ArrayList$Itr.next(ArrayList.java:831)com.jaxb.testing.FailureProcessor.parseTestSuiteXML(FailureProcessor.java:66)com.jaxb.testing.FailureProcessor.main(FailureProcessor.java:27)中的异常尝试
List tcs=newlinkedlist(ts.getTestcase())。我认为
ArrayLists
的迭代器在迭代期间不支持
remove
。无论如何,这现在是一个集合问题,而不是JAXB。
Exception in thread "main" java.lang.ClassCastException: javax.xml.bind.JAXBElement cannot be cast to com.jaxb.testjunit.TestsuiteType
    at com.jaxb.testing.FailureProcessor.parseTestSuiteXML(FailureProcessor.java:49)
    at com.jaxb.testing.FailureProcessor.main(FailureProcessor.java:24)