Невозможно создать сообщение: неверный тип содержимого для версии SOAP.Получил текст / xml;charset = UTF-8, но ожидаемое приложение / мыло + xml - PullRequest
8 голосов
/ 11 ноября 2011

Я пытаюсь использовать API крупных торговых служб, предоставляемый eBay, для загрузки файлов на eBay.

Они предоставили файл sample.jar того же самого.Кажется, что он работает нормально, когда мы запускаем файл .jar в командной строке, но когда я пытаюсь интегрировать его источник в мое веб-приложение, оно выдает мне эту ошибку.Также я попытался создать клиент веб-службы с использованием Netbeans и попытался использовать его, но все равно он выдал ту же ошибку.Я также изменил версию SOAP с 1.1 на 1.2, но это тоже не работает.Ниже приведена полная трассировка стека.

Nov 11, 2011 2:59:41 PM com.sun.xml.internal.messaging.saaj.soap.MessageImpl init
SEVERE: SAAJ0533: Cannot create message: incorrect content-type for SOAP version. Got text/xml; charset=UTF-8, but expected application/soap+xml
Nov 11, 2011 2:59:41 PM com.sun.xml.internal.messaging.saaj.soap.MessageImpl init
SEVERE: SAAJ0535: Unable to internalize message
Exception in thread "main" javax.xml.ws.WebServiceException: Couldn't create SOAP message due to exception: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.internal.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:83)
        at com.sun.xml.internal.ws.encoding.soap.client.SOAPXMLDecoder.toSOAPMessage(SOAPXMLDecoder.java:102)
        at com.sun.xml.internal.ws.protocol.soap.client.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:440)
        at com.sun.xml.internal.ws.protocol.soap.client.SOAPMessageDispatcher.doSend(SOAPMessageDispatcher.java:260)
        at com.sun.xml.internal.ws.protocol.soap.client.SOAPMessageDispatcher.send(SOAPMessageDispatcher.java:139)
        at com.sun.xml.internal.ws.encoding.soap.internal.DelegateBase.send(DelegateBase.java:86)
        at com.sun.xml.internal.ws.client.EndpointIFInvocationHandler.implementSEIMethod(EndpointIFInvocationHandler.java:174)
        at com.sun.xml.internal.ws.client.EndpointIFInvocationHandler.invoke(EndpointIFInvocationHandler.java:108)
        at $Proxy28.createUploadJob(Unknown Source)
        at com.SwiftConnectV1.fileprocess.LMS.BulkDataExchangeActions.createUploadJob(BulkDataExchangeActions.java:138)
        at com.SwiftConnectV1.fileprocess.LMS.LMSClientJobs.createUploadJob(LMSClientJobs.java:154)
        at com.SwiftConnectV1.fileprocess.LMS.LMSSample.main(LMSSample.java:74)
Caused by: Couldn't create SOAP message due to exception: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.internal.ws.util.SOAPUtil.createMessage(SOAPUtil.java:154)
        at com.sun.xml.internal.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:78)
        ... 11 more
Caused by: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Unable to internalize message
        at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.init(MessageImpl.java:475)
        at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.<init>(MessageImpl.java:278)
        at com.sun.xml.internal.messaging.saaj.soap.ver1_2.Message1_2Impl.<init>(Message1_2Impl.java:61)
        at com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPMessageFactory1_2Impl.createMessage(SOAPMessageFactory1_2Impl.java:62)
        at com.sun.xml.internal.ws.util.SOAPUtil.createMessage(SOAPUtil.java:152)
        ... 12 more
Caused by: com.sun.xml.internal.messaging.saaj.soap.SOAPVersionMismatchException: Cannot create message: incorrect content-type for SOAP version. Got: text/xml; charset=UTF-8 Expected: application/soap+xml
        at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.init(MessageImpl.java:356)
        ... 16 more

Ответы [ 2 ]

26 голосов
/ 13 ноября 2011

SAAJ0533: Невозможно создать сообщение: неверный тип содержимого для версии SOAP. Получил текст / xml; charset = UTF-8, но ожидаемое применение / мыло + xml

На основании сообщения об исключении я говорю, что вы что-то перепутали.

Для всех отправленных сообщений SOAP заголовок Content-type должен быть:

  • text/xml для SOAP v1.1
  • application/soap+xml для SOAP v1.2.

Сначала проверьте это, затем я предлагаю попробовать посмотреть, что происходит по проводам (например, с помощью Fiddler ), а затем сравнить, что отличается в вашем веб-приложении от sample.jar. который работает.

0 голосов
/ 14 ноября 2011

Получилось, похоже, мой JDK был поврежден всеми внешними jar-файлами, которые я добавил, чтобы заставить его работать. Обновлен до Java 7 и теперь, похоже, работает нормально.

...