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

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

  • Документы WSDL с кодировкой RPC. Для этих документов используйте 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 Java API для веб-сервисов 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.