パスワードを忘れた? アカウント作成
809198 journal
日記

vbsnbkの日記: PEAR XML_RPC2で大はまり中

日記 by vbsnbk

知り合いから頼まれたPHP製のWEBシステムをTrac連携する部分の改造で2日ばかりハマり中。
連携のインターフェースはXMLRPCで、PHP側はPEAR::XML_RPC2。

各種情報取得系は問題なく動くんだけど、チケットを登録するticket.createメソッドを呼び出そうとすると
XML_RPC2_Exceptionを吐き出しやがるのです。Messageは……
"Backend T does not exist"
だとぉ!?

backendを明示的に指定していないのが悪いのか、あるいはphp-xmlrpcを入れてないのかと思ったけどどうもそうではなさそう。そもそもXML_RPC2は指定してなければ自動でバックエンドを選択してくれるはずだしな。

で、ソースを追っていったらこの例外を出すコードはXML_RPC2_Backend::setBackend()なんだけど、これがXML_RPC2_Client::create()の時だけでなくTracのticket.createメソッド呼び出し時にも呼ばれてて、この2回目が問題起こしてる模様。

これ、
        $client = XML_RPC2_Client::create($xmlrpc_url, array('encoding' => 'utf-8', 'prefix' => 'ticket.', 'backend'=>'XMLRPCext'));

$return=client->create($summary, $description,$attr);

が同名だから、XMLRPC側のAPIを呼ぼうとしてXML_RPC2_Client::createを呼んでるって事!?

この場合どうしたら良いんだ……orz

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...