XMLStreamException возникает при вызове веб-службы .NET ASMX (Soap) с использованием JAX-WS - PullRequest
2 голосов
/ 07 марта 2011

Я пытаюсь вызвать веб-сервис .NET с помощью NetBeans. Один из моих веб-методов возвращает сложный тип, а Java генерирует исключение при обработке ответа. Сообщение об исключении: «Содержание не разрешено в прологе».

Используя Fiddler, я смог увидеть точный ответ, который дает веб-служба, и я считаю, что проблема заключается в последовательности спецификации UTF-8 (EF BB BF) в начале содержимого.

Я обнаружил аналогичный вопрос о переполнении стека в отношении последовательности спецификаций и вызова веб-служб Java из .NET, но ничего в обратном сценарии не было.

1) Может ли JAX-WS справиться с этим?

2) Если нет, возможно ли контролировать и отключать вывод спецификации UTF-8? Я попытался настроить Response ContentEncoding для исключения спецификации UTF-8, добавив следующую строку в моем Global.asax в начале каждого запроса: Response.ContentEncoding = new System.Text.UTF8Encoding(false);

1 Ответ

1 голос
/ 23 декабря 2015

Я знаю, что этот ответ приходит с некоторым опозданием, но, поскольку я столкнулся с той же проблемой, и не получил четкого ответа, вот мое решение:

Вместо стандартной реализации Oracle, которая используется по умолчанию, используйте Apache CXF . Вам нужно только добавить необходимые библиотеки в путь к классам. Загрузчик классов затем загружает Apache CXF вместо Oracle, и все готово. Мне не нужно было менять строку кода.

Если вы используете Maven, этот артефакт добавляет необходимые (клиентские) библиотеки Apache CXF:

<dependency>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-rt-transports-http</artifactId>
  <version>${cxf.version}</version>
</dependency>
...