我正在尝试运行Perl SOAP服务器,它启动正常,但是当远程调用某个方法时,我收到以下消息:
SOAP :: Serializer :: envelope:客户端无法访问类(HELLO): 无法在(eval 127)第3行的@INC(@INC contains :)中找到HELLO.pm。
现在我假设这是因为@INC没有指定我的HELLO.pm文件所在的位置?虽然我可以在哪里定义这个?我已经尝试将以下内容添加到我的脚本中并将类(Hello.pm)放在那里但没有运气:
BEGIN {
push(@INC, '/etc/perl/');
};
我的代码如下(soapserver.pl):
BEGIN {
push(@INC, '/etc/perl/');
};
#- SoapHttpServerTrace.pl
#- Copyright (c) 2002 by Dr. Herong Yang
use SOAP::Lite +trace;
use SOAP::Transport::HTTP;
my $daemon = SOAP::Transport::HTTP::Daemon
-> new (LocalAddr => 'XX.XX.XX.XX', LocalPort => 8001, listen => 5);
$daemon -> dispatch_to('Hello::hello');
print "Contact SOAP server at ", $daemon->url, "\n";
$daemon->handle();
答案 0 :(得分:5)
您说您的文件名为Hello.pm,但错误消息表示尝试加载HELLO.pm。解决其中任何一个是错误的。