人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PERLの設置についてさくらレンタルサーバを使ってCGIテストしようとしましたが500エラーとなってしまいました。
先ほどの質問にもそういうエラーでしたが、
print "Content-type: text/html\n\n";
を加えて解決できました。
しかしそういうスクリプトではエラーになってしまいます。

#!/usr/bin/perl

use strict;
use warnings;
use SOAP::Lite;

my $AWSAccessKeyId = "アクセスキー";
my $ecs_wsdl = "http://webservices.amazon.com/AWSECommerceService/JP/AWSECommerceService.wsdl";
my $asin = '4886487467';

my $request_complex_type = \SOAP::Data->value(
SOAP::Data->name('ItemId')
->value($asin),
SOAP::Data->name('ResponseGroup')
->value('SalesRank'));
my $itemlookup_request = SOAP::Data->value(
SOAP::Data->name('AWSAccessKeyId')
->value($AWSAccessKeyId),
SOAP::Data->name('Request')
->value($request_complex_type));
my $ecs_handle = SOAP::Lite->service("$ecs_wsdl");
$ecs_handle->ItemLookup($itemlookup_request);
my $responce = $ecs_handle->call();
my $rank = $responce->valueof("//Items/Item/SalesRank");

print "Content-type: text/html\n\n";
print $rank;
Perl初心者なのでやさしくお願いします。
解決方法を教えてください。

●質問者: nzk
●カテゴリ:ウェブ制作
✍キーワード:ASIN CGI HTML LITE name
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● b-wind
●35ポイント

HTTPD(またはその他)にエラーログを書込むためのCGIルーチン


とりあえずエラーの内容が分からない事には対処できませんので、

先頭付近を

#!/usr/bin/perl

use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use SOAP::Lite;

に書き換えてから実行してみてください。

エラーがブラウザに出力されるはずです。

◎質問者からの返答

返答ありがとうございます。

すいません。。

こっちのミスで正確には下記のエラーが出ていました。

Software error:

String value expected instead of SOAP::Data reference

For help, please send mail to the webmaster (support@sakura.ad.jp), giving this error message and the time and date of the error.

と出ていました。

"SOAP::Data" というのはPerlのモジュールでしょうか?

その解決方法はなんでしょうか??

お手数おかけしますがよろしくお願いします。


2 ● b-wind
●35ポイント

Can't locate object method "new" via package "XMLRPC::Lite" (perhaps you forgot to load "XMLRPC::Lite"?) at test.cgi line 8.

なんでこのエラーがでるのかは良く分かりませんが(内部的に使われてる?)とりあえず SOAP::Lite に同梱されているモジュールです。

XMLRPC::Lite - client and server implementation of XML-RPC protocol - search.cpan.org


そのまま同じく先頭付近を

#!/usr/bin/perl

use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
use SOAP::Lite;
use XMLRPC::Lite;

に書き換えてみてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ