Наше приложение предоставляет SOAP API. Наши стартовые строки wsdl выглядят примерно так:
<wsdl:definitions name='ControlDServices' ... xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' ...
Обычно это работает нормально, но клиент пожаловался, что при попытке использовать наш SOAP API в NetBeans с предоставляемым нами wsdl возникает следующая ошибка:
Web Service can not be created by JAXWS:wsimport utility.
Reason: invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")
Это можно легко воссоздать, запустив:
wsimport -d . -extension -Xnocompile -keep -s . -verbose <our wsdl file>
что приводит к ошибке:
[ERROR] invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")
unknown location
Наша служба поддержки обнаружила, что изменение определения xmlns:soap для использования http://www.w3.org/2001/12/soap-envelope/ решает проблему, но это требует изменений в нашем продукте, а также противоречит большинству мест, которые я вижу в Интернете, где wsdl :definitions файл определен. Кроме того, этот URI, по-видимому, относится к soap-envelop, а не к wsdl, а также к определенной дате, а не к общему URI.
Есть ли способ решить проблему NetBeans/wsimport без изменения нашего wsdl, например. путем изменения параметров? Если нет и требуется изменение, разумно ли изменить его на http://www.w3.org/2001/12/soap-envelope/, или мы должны использовать что-то еще?
Спасибо
сплинтор