Наше приложение предоставляет SOAP API. Наши WSDL стартовые линии что-то вродеwsdl xmlns проблемы с NetBeans и wsimport
<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>
wihch дает ошибку:
[ERROR] invalid extension element: "soap:body" (in namespace "http://schemas.xmlsoap.org/wsdl/soap/")
unknown location
Наша поддержки обнаружила, что изменение Xmlns: определение мыла использовать http://www.w3.org/2001/12/soap-envelope/ решает эту проблему, но это требует изменений в нашем продукте, а также противоречит большинству мест, которые я вижу в Интернете, где WSDL-: определения файл. Кроме того, этот URI, по-видимому, относится к мыльной оболочке, а не к wsdl, а также для определенной даты, а не к общему URI.
Есть ли способ решить проблему NetBeans/wsimport без изменения нашего wsdl, например. путем изменения параметров? Если нет, и требуется изменение, целесообразно ли его изменить на http://www.w3.org/2001/12/soap-envelope/, или мы должны использовать что-то еще?
Благодаря
splintor
Итак, какое пространство имен URI следует использовать? – splintor
Ты ничего плохого не делаешь - они тоже. Вы просто несовместимы. Посмотрите, могут ли они обрабатывать SOAP 1.1, может быть, есть переключатель '-soap11'? В противном случае ваше приложение должно будет поддерживать SOAP 1.2, что не просто изменение пространства имен. На какой платформе работает ваше приложение? –