У меня была именно эта проблема, и я потратил добрых полдня на ее исправление из-за того, насколько расплывчато сообщение об ошибке. Проблема связана с вашей службой SOAP (НЕ реализацией клиента). Это выдает ошибку, потому что есть проблема с пространством имен с XML, который вы отправляете клиенту.
Согласно этой статье, проблема может быть вызвана тремя причинами:
- Нулевой префикс пространства имен
- Префикс пространства имен «xml», которого нет в URI пространства имен «http://www.w3.org/XML/1998/namespace».
- Префикс пространства имен «xmlns», которого нет в URI пространства имен «http://www.w3.org/2000/xmlns/».
В моем случае это был № 1 выше, который вызвал проблему. Я не возвращал XML с пространством имен. Я исправил это, добавив пространство имен (переменная «ns») к корневому элементу и всем дочерним узлам, например так:
Namespace ns = Namespace.getNamespace("tns", "http://mycompany.com/schemas");
Element result = new Element("ResponseType", ns);
Document doc = new Document(result);
result.addContent(new Element("StatusCode", ns).setText(code));
result.addContent(new Element("Message", ns).setText(message));
Важно отметить, что код моего примера предназначен для JDom, а не для Dom4j, как спрашивал человек. Вам придется использовать код, соответствующий используемой вами библиотеке XML.
person
Brent Matzelle
schedule
04.11.2010