У меня была именно эта проблема, и я потратил полдня на ее устранение из-за того, что смутное сообщение об ошибке.Проблема в вашем сервисе SOAP (НЕ в реализации клиента).Выдает ошибку, потому что существует проблема с пространством имен в XML, который вы отправляете клиенту.
Существует три возможных причины проблемы в соответствии с этой статьей :
- Пустой префикс пространства имен
- Префикс пространства имен "xml"«которого нет в namespaceURI» http://www.w3.org/XML/1998/namespace"
- Префикс пространства имен «xmlns», которого нет в namespaceURI «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.