2
我正在嘗試使用SOAP :: Lite編寫SOAP服務器來與現有的soap客戶端(特別是tr-069 dsl調制解調器)一起工作,但尚不清楚傳入xml觸發器的調用方式。肥皂清單郵件列表主持人對將我添加到他們的清單速度緩慢,所以我想我會看到是否有人在這裏可以幫助我指向正確的方向...Perl SOAP :: Lite服務器基礎知識
對於初學者,我得到:
<faultstring>Unrecognized header has mustUnderstand attribute set to 'true'</faultstring>
我懷疑這意味着我沒有定義一個函數來處理它想要處理的東西。處理程序代碼(基於例如在SOAP ::服務器手冊頁):
SOAP::Transport::HTTP::CGI
->dispatch_to('PeakACS')
->handle;
BEGIN {
package PeakACS;
use vars qw(@ISA);
@ISA = qw(Exporter SOAP::Server::Parameters);
use SOAP::Lite;
my $debugging = 1;
my $console = 0;
my $prog_id = 'peakacs';
my $log = DebugLog->new($prog_id, $debugging, $console);
$log->debug_msg('info', 'handle', '%s', 'handler setup');
sub ID {
$log->debug_msg('info', 'id', '%s', 'got an id');
}
sub Header {
$log->debug_msg('info', 'header', '%s', 'heading');
}
sub Inform {
$log->debug_msg('info', 'inform', '%s', 'informing');
}
}
如果我理解正確的SOAP(這是遠從給定),標籤應轉化爲一個電話通知 - 該XML請求的頂部看起來像:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
<SOAP-ENV:Header>
<cwmp:ID SOAP-ENV:mustUnderstand="1">1539095918</cwmp:ID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<cwmp:Inform>
<DeviceId>
這是服務器端,而不是客戶端... – abatie