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初心者なのでやさしくお願いします。
解決方法を教えてください。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:2007/04/16 18:25:44
  • 終了:2007/04/23 18:30:03

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/04/16 18:35:31

ポイント35pt

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


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

先頭付近を

#!/usr/bin/perl

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

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

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

id:makotoworld

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

すいません。。

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

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のモジュールでしょうか?

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

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

2007/04/16 23:52:35
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402007/04/16 22:00:24

ポイント35pt

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;

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

  • id:b-wind
    とりあえず、回答制限は2回までのようですので。
    SOAP::Data は Perl のモジュールです。
    ご自身のソースに使われているものですが、その様子ですとどこかからコピーしてきていますか?
    まずは、一言一句間違いないか確認してみてください。
  • id:makotoworld
    b-windさんすみません。
    「俺流amazonの作り方」という本からそのままコピペしたものなんです。
    そのソースもテキスト形式で保管しているURLが掲載されていたので
    それを元にコピペし、文字コードや、改行形式に気を使いながら
    保存してアップロード、確認してみたものです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません