Теперь я работаю над своим веб-сервисом (я использую jax ws, jboss application server version 4.0.4, EJB для реализации веб-сервиса), когда я начал тестировать свой веб-сервис с парнями, которые будут его использовать, все было в порядке для меня, но в их программном обеспечении была ошибка
{"The content type text/xml;charset=UTF-8 of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly}
.
Для меня это похоже на то, что мой веб-сервис использует мыло 1.1 вместо мыла 1.2, можно ли настроить его через аннотацию jax ws в моем классе? Я нашел аннотацию @BindingType
и попытался использовать @BindingType(SOAPBinding.SOAP12HTTP_BINDING)
в своем классе EJB, но wsdl все еще такой же, как раньше, и тип контента не был изменен. большое спасибо
Я не думаю, что это проблема с версией SOAP.
Exchange Server чрезвычайно разборчив в отношении спецификации кодировки. Он должен быть charset=utf-8
, строчным и без кавычек. Мне пришлось перезаписать по умолчанию charset="utf-8"
который мой SOAP-код добавлен в вызовы SOAP.
Я не могу помочь вам, как сделать это переопределить в Java, потому что я работаю в Delphi. Возможно, другой читатель может отредактировать мой ответ и заменить этот последний абзац на правильные инструкции для этого на Java.