【问题标题】:Perl::WSDL. Generated methods in different directory than scriptPerl::WSDL。在与脚本不同的目录中生成的方法
【发布时间】:2018-03-12 19:23:15
【问题描述】:

我正在尝试编写一个用于 op5/nagios 的脚本。 它试图做的是连接到数据库并在那里获取一个值,然后向 Web 服务发送一个请求,并将来自 Web 服务的响应与来自数据库的值进行匹配。

现在编写脚本不是问题。尝试从 OP5 运行时出现问题。

当包含脚本接口时,我使用以下语法

use MyInterfaces::PortalServicesImplService::PortalServicesImplPort;

当我执行与“MyInterfaces”位于同一级别的脚本时,这工作得很好。

问题在于脚本本身位于文件夹 /opt/plugins/custom/SOAP 中,脚本和由 wsdl2perl.pl 生成的文件夹都位于该文件夹中。但是,当 OP5 执行脚本时,脚本是从文件夹 /opt/monitor 执行的。

所以我尝试使用这种语法包含“PortalServicesImplPort”

use lib "/opt/plugins/custom/SOAP/MyInterfaces/PortalservicesImplServices/PortalServicesImplPort

代码可以编译,但是在尝试运行它时,我收到一条错误消息 Can't locate object method "new" via package "MyInterfaces::PortalServicesImplService::PortalServicesImplPort" (perhaps you forgot to load "MyInterfaces::PortalServicesImplService::PortalServicesImplPort"?)

从其他位置导入方法时我做错了什么还是 SOAP::WSDL 不支持将自动生成的文件放在与执行脚本不同的目录中?

【问题讨论】:

  • 更仔细地查看生成的方法,它们都相互引用。似乎为了让我能够从另一个人那里使用它们,我必须在执行脚本时更改位置或更改从其中导入方法的“基本目录”..这甚至可能吗?
  • 似乎我自己通过添加 use lib "/opt/plugins/custom/SOAP 解决了这个问题

标签: perl-module


【解决方案1】:

似乎我自己通过添加use lib "/opt/plugins/custom/SOAP 解决了这个问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多