Я пытаюсь написать скрипт для использования с op5 / nagios.Он пытается подключиться к базе данных и получить там значение, а затем отправить запрос веб-службе и сопоставить ответ веб-службы со значением из базы данных.
Теперь сценарий написан не был 'т проблема.Проблема возникает при попытке запустить его из 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 не поддерживает размещение автоматически сгенерированных файлов вдругой каталог, из которого вы выполняете скрипт?