apache - 从本地主机获取 SOAP 应答

标签 apache perl soap

我正在学习 SOAP,并创建了一个非常小的 CGI 脚本,该脚本在 Apache 上运行,将提供一小组功能。

#!/usr/bin/perl

use SOAP::Transport::HTTP;

SOAP::Transport::HTTP::CGI   
  -> dispatch_to('Demo')     
  -> handle;

package Demo;

sub hi {                     
  return "hello, world";     
}

sub bye {                    
  return "goodbye, cruel world";
}

sub languages {                 
  return ("Perl", "C", "sh");   
}

我的客户是

#!perl -w

use SOAP::Lite;

print SOAP::Lite                                             
    -> uri('http://localhost:80/cgi-bin/Demo')                                             
    -> proxy('http://localhost:80/cgi-bin/hibye.cgi')
    -> hi()                                                    
    -> result;

一切都会编译,并且当我运行脚本时没有错误。问题是,当我运行客户端时,它完成了,但没有得到响应。我认为 URI 可能是错误的,但我不确定。代理没问题。

编辑:在控制台中运行脚本时我没有收到错误,但是我在 apache 日志中收到错误(由于某种原因我没有检查)。 错误

script not found or unable to stat: /usr/lib/cgi-bin/hibye.cgis

这是一个权限问题。我修复了它,现在运行脚本时控制台和错误日志中都没有出现问题。

在访问日志中我得到以下内容:

"POST /cgi-bin/hibye.cgi HTTP/1.1" 500 780 "-" "SOAP::Lite/Perl/0.714"

最佳答案

经过一些实验,我发现了问题 - 问题出在 uri 绑定(bind)中。在这种情况下,必须将其更改为:

http://localhost:80/cgi-bin/Demo

至:

http://localhost:80/Demo

脚本将按预期工作。

关于apache - 从本地主机获取 SOAP 应答,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22483893/

相关文章:

php - ZIP 文件被 IE 损坏

perl - 将 CPAN 模块转换为 Debian 软件包的最佳方法是什么?

web-services - 为什么REST不像SOAP那样不利用WSDL?

xml - 网络服务 : Single String Parameter Or Complex Type Parameters

apache - Vagrant 专员 shell 命令提示 sudo

php - .htaccess 在 ubuntu 服务器上无法正常工作

perl - 在 Perl 的单元测试期间提示用户

soap - Dart如何利用SOAP请求?

PHP file_get_contents() 函数

perl - 在@ISA 上使用拼接在 perl 5.12.2 中是否存在问题?