首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有.NET客户端的“未知错误”

带有.NET客户端的“未知错误”
EN

Stack Overflow用户
提问于 2014-02-06 07:44:30
回答 1查看 905关注 0票数 0

我使用Zend实现了一个web服务。

使用PHP客户端(Zend )连接到它,它按预期工作。但是,对于一个.NET客户端,它将返回一个相当无用的错误“未知错误”。

错误日志显示:

代码语言:javascript
复制
PHP Notice:  Array to string conversion in /path/to/app/vendor/zendframework/zend-soap/Zend/Soap/Server.php on line 881

有人注意到这个问题了吗?以下是我的服务器代码:

代码语言:javascript
复制
public function server()
{
    // Soap Server options
    $options = array(
        'classmap' => array(
            'TransactionType' => 'Acme\TransactionType',
        ),
    );

    // Create Soap Server
    $server = new Server(public_path('file.wsdl'), $options);

    // Bind Class to Soap Server
    $server->setClass('Acme\Transaction');

    // Handle request
    $server->handle();

}

public function wsdl()
{
    // Output WSDL
    $autodiscover = new AutoDiscover(new ArrayOfTypeSequence());
    $autodiscover->setClass('Acme\Transaction')
                 ->setUri(\URL::route('server'))
                 ->setServiceName('AcmeTransactions');
    $wsdl = $autodiscover->generate();

    $wsdl->dump(public_path('file.wsdl'));
}

Acme/Transaction如下所示:

代码语言:javascript
复制
class Transaction extends \Eloquent
{

 /**
 * The database table used by the model.
 *
 * @var string
 */
protected $table = 'transactions';

/**
 * The attributes that aren't mass assignable.
 *
 * @var array
 */
protected $guarded = array();

/**
 * Saves a TransactionType to the database.
 *
 * @param TransactionType $transaction
 *
 * @return bool
 */
public static function saveTransaction(TransactionType $transaction)
{
    /**
     * @var Transaction $model
     */
    $model = new self();
    $model->fill(
        array(
            'transaction_id'       => $transaction->transaction_id,
            'transaction_number'   => $transaction->transaction_number,
            // ...
        )
    );

    return $model->save();
}

}

Acme/TransactionType如下所示:

代码语言:javascript
复制
class TransactionType {

/**
 * @var string
 */
public $transaction_id = '';

/**
 * @var string
 */
public $transaction_number = '';

// ...

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-07 11:37:04

通过使用Zend\Soap\Server\DocumentLiteralWrapper解决了此问题。

http://framework.zend.com/manual/2.2/en/modules/zend.soap.server.html#document-literal-wsdl-handling

故事的寓意--如果您正在构建一个需要由C#客户端使用的,请查看文档-文字-wsdl-处理,以解决这些跨平台问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21596870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档