У меня есть два кода в двух разных java-проектах, делающих почти одно и то же, (разупорядочение ввода веб-сервиса в соответствии с xsd -файл ).
Но в одном случае я должен написать это:(Input — это имя-заполнитель)(element — это ввод OMElement )
ClassLoader clInput = input.ObjectFactory.class.getClassLoader();
JAXBContext jc = JAXBContext.newInstance("input", clInput);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Input input = (Input)unmarshaller.unmarshal( element.getXMLStreamReader() );
, а в другом lib я должен использовать JAXBElement.getValue (), потому что это JAXBEElement, который возвращается, а простое (Input )приведение просто вылетает:
Input input = (Input)unmarshaller.unmarshal( element.getXMLStreamReader() ).getValue();
Знаете ли вы, что приводит к такой разнице?