【问题标题】:Pass array of objects as param to SOAP function and php-wsdl将对象数组作为参数传递给 SOAP 函数和 php-wsdl
【发布时间】:2015-03-19 20:16:17
【问题描述】:

我正在尝试使用读取对象数组作为参数的函数来设置 SOAP 服务器。我正在使用 php-wsdl 生成 WSDL。这是我的方法:

/**
 * TStanMag
 * 
 *
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element string $kodTowaru Kod towaru
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element float $ilosc Dostępna ilość
 * @pw_complex TStanMag Pozycja stanu magazynowego
 */
class TStanMag {
    public $kodTowaru;
    public $ilosc;
};

...

/**
 * Aktualizacja stanów magazynowych
 * 
 * @param string $key1 Klucz 1
 * @param string $key2 Klucz 2
 * @param TStanMag[] $stany Tabela stanów magazynowych
 * @param int $store_id
 * @return TResult[] Response
 */
public function AktualizujStanyMagazynowe($key1, $key2, $stany, $store_id = 0) {
...
}

但在 WSDL 中我看到的是这种类型而不是类型数组:

<wsdl:part name="stany" type="tns:TStanMag[]">
<s:documentation>Tabela stanów magazynowych</s:documentation>
</wsdl:part>

在 SoapUI 中也收到警告

Thu Mar 19 21:04:38 CET 2015:WARN:Failed to find type [{http://localhost/symsync/}TStanMag[]]

我该如何解决这个问题?

【问题讨论】:

  • 你能分享整个wsdl吗? TStanMag 类型是否在使用 http://localhost/symsync/ 命名空间定义的架构内定义?

标签: php soap wsdl soapui


【解决方案1】:

与此同时,我解决了这个问题。工作代码如下。

/**
 * TStanMag
 * 
 *
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element string $kodTowaru Kod towaru
 * @pw_set nillable=false The next element can't be NULL
 * @pw_element float $ilosc Dostępna ilość
 * @pw_complex TStanMag Pozycja stanu magazynowego
 */
class TStanMag {
    public $kodTowaru;
    public $ilosc;
};

/**
 * TStanMagArray
 * 
 *
 * @pw_element TStanMag $TStanMag Kod towaru
 * @pw_complex TStanMagArray Tablica pozycji stanu magazynowego
 */
class TStanMagArray {
    public $TStanMag;
};

...

/**
     * Aktualizacja stanów magazynowych
     * 
     * @param string $key1 Klucz 1
     * @param string $key2 Klucz 2
     * @param TStanMagArray $stany Tabela stanów magazynowych
     * @param int $store_id
     * @return TResultArray Response
     */
    public function AktualizujStanyMagazynowe($key1, $key2, $stany, $store_id = 0) {

【讨论】:

  • 你做了什么,请解释一下。它将使其他 SO 用户受益。
  • 我需要的是创建上面声明的 TStanMagArray 类。请注意,php-wsdl 解析器需要 ...Array 后缀来“识别”它。
猜你喜欢
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 2010-10-09
  • 2014-12-08
  • 2012-05-31
  • 2012-12-07
相关资源
最近更新 更多