Ограничения к поддержке документа 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 поддерживаются.