У меня установлено уведомление об электронном eBay, и я хочу преобразовать содержимое уведомлений (это SOAP XML) в объект Java GetItemTransactionsResponse. Ниже приведен код, который я использую.Преобразование eBay SOAP-ответа на объект Java
SOAPMessage message = MessageFactory.newInstance().createMessage(null,
new ByteArrayInputStream(
CONVERT_EBAY_NOTIFICATION_TO_BYTE_ARRAY_METHOD()
));
SOAPEnvelope soapEnv = message.getSOAPPart().getEnvelope();
SOAPBody soapBody = message.getSOAPBody();
JAXBContext content = JAXBContext.newInstance(GetItemTransactionsResponseType.class);
Unmarshaller unmarshaller = content.createUnmarshaller();
JAXBIntrospector jaxbIntrospector = content.createJAXBIntrospector();
Object transactionObject = unmarshaller.unmarshal(soapBody, GetItemTransactionsResponseType.class);
GetItemTransactionsResponseType transaction = (GetItemTransactionsResponseType)jaxbIntrospector.getValue(transactionObject);
Я думал, это будет преобразовать SOAP XML в соответствующий eBay объект, но он не работает, потому что «сделка» объект пустой ... Я пытался получить доступ к переменной в «операции» объект
transaction.getItem()
и я получаю NullPointerException ...
затем проверить мой объект SOAPBody, чтобы увидеть, если я передаю в пустом содержании, которое вызывает NullPointerException
soapBody.getTextContent()
Я вижу содержимое текста внутри объекта soapBody. Это не пусто!
Я бы очень признателен за любую помощь, которая могла бы решить эту проблему. Не уверен, что я неправильно конвертирую SOAP XML. Заранее спасибо!