Ограничения к поддержке документа WSDL

Неподдерживаемые документы WSDL

  • Закодированные RPC документы WSDL. Для этих документов используйте createClassFromWsdl.

  • Документы, которые программа Apache™ CXF не может скомпилировать в полный код.

  • Документы, которые импортируют другие документы WSDL, которые содержат определения типа WSDL.

     Работа вокруг

  • На Windows® могут перестать работать документы, которые импортируют другие документы WSDL, если импортированный URI содержит определенные символы пунктуации.

  • Некоторые документы с сообщениями, содержащими несколько частей.

  • Некоторые документы со схемами, содержащими анонимные составные типы.

  • Некоторые документы, задающие входной параметр к операции как простой тип. Когда вы вызываете такую операцию, например, GetMyOp, MATLAB® отображает одну из следующих ошибок.

    Error using xxx/GetMyOp.  Too many input arguments.
    

    Или:

    Error using matlab.internal.callJava
    No GetMyOp method with appropriate signature exists in Java class $Proxy57
    
  • Если документ WSDL задает типы схемы в нескольких пространствах имен, ошибка может произойти, если типы в различных пространствах имен имеют те же имена. Несколько пространств имен обычно происходят при использовании операторов import. Отображения MATLAB обмениваются сообщениями подобный следующему.

    Error using matlab.wsdl.createWSDLClient (line 239) 
    Error processing WSDL: 
    file:/l:/02090080/incoming/service_w0_x0.xsd [149,4]: Two declarations cause a 
    collision in the ObjectFactory class.

    Чтобы работать вокруг этой проблемы, скопируйте импортированные файлы и отредактируйте их, чтобы переименовать конфликтные типы.

  • Элемент XML-схемы all, не распознанный.

     Работа вокруг

Документы должны соответствовать стилю обертки

Операции, заданные в WSDL, должны соответствовать правилам для стиля обертки, как описано пунктом (ii) в разделе 2.3.1.2 из API Java для веб-сервисов XML (JAX-WS) 2.0. Сообщения об ошибке, подобные следующему, являются признаками относительно этой проблемы.

Error using matlab.internal.callJava
No authenticate method with appropriate signature exists in Java class com.sun.proxy.$Proxy55

Error in Service/Authenticate (line 107)
            matlab.internal.callJava('authenticate',obj.PortObj,fromMATLAB({'Authenticate','user'},
            user,'string',false,false),...

Чтобы работать вокруг этой проблемы, отредактируйте WSDL, чтобы соответствовать правилам стиля обертки или отредактировать сгенерированный код MATLAB, чтобы инстанцировать и передать в объекте класса Java®, который содержит параметры.

Поля заголовка SOAP, не поддержанные

Не возможно отправить сообщения, которые требуют элементов заголовка простого протокола доступа к объектам (SOAP). Только элементы тела SOAP поддерживаются.