ОБНОВЛЕНИЕ
Этот вопрос может относиться к роли ObjectFactory
в создании JAXBContext
.Если вы загрузите JAXBContext
в контекстный путь, он проверит наличие ObjectFactory в этом месте, чтобы определить классы в этом пакете:
Если у вас нет ObjectFactory
, но вы все еще хотите создать вас JAXBContext
по контекстному пути, вы можете включить файл с именем jaxb.index
в список файлов этого пакета, который будет включен в JAXBContext
(ссылочные классыавтоматически извлекается):
В качестве альтернативы вы можете загрузить JAXBContext
в массив классов вместо пути к контексту:
Требуется ли ObjectFactory
ObjectFactory
не требуется, хотя даже при запуске из классов Java существуют случаи, когда вы можете использовать аналогичный класс, аннотированный @XmlRegistry
для использования аннотации @XmlElementDecl
.
Создание экземпляра JAXBElement
Вы всегда можете создать JAXBElement
напрямую:
final JAXBElement<WebLeads> webLeadsElement = new JAXBElement<WebLeads>(
new QName("root-element-name"),
WebLeads.class,
webLeadsJavaObj);
Альтернатива JAXBElement
Или, поскольку JAXBElement просто используется для предоставления информации о корневом элементе, вы можете аннотировать свой класс WebLeads
с помощью @XmlRootElement
:
@XmlRootElement(name="root-element-name")
public class WebLeads {
...
}