2009-12-07 2 views
0

Наше приложение предоставляет 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

ответ

0

Похоже, что они не поддерживают SOAP 1.1, только SOAP 1.2.

+0

Итак, какое пространство имен URI следует использовать? – splintor

+0

Ты ничего плохого не делаешь - они тоже. Вы просто несовместимы. Посмотрите, могут ли они обрабатывать SOAP 1.1, может быть, есть переключатель '-soap11'? В противном случае ваше приложение должно будет поддерживать SOAP 1.2, что не просто изменение пространства имен. На какой платформе работает ваше приложение? –

Смежные вопросы