Наше приложение предоставляет 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: определения определен. Кроме того, этот URI, по-видимому, принадлежит мыльной оболочке, а не wsdl, а также для конкретной даты, а не общего URI.
Есть ли способ решить проблему NetBeans / wsimport без изменения нашего wsdl, например, путем изменения параметров? Если нет, и требуется изменение, целесообразно ли изменить его на http://www.w3.org/2001/12/soap-envelope/, или мы должны использовать что-то еще?
Спасибо
splintor