Perl :: WSDL. Сгенерированные методы в другом каталоге, чем скрипт - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь написать скрипт для использования с 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 не поддерживает размещение автоматически сгенерированных файлов вдругой каталог, из которого вы выполняете скрипт?

1 Ответ

0 голосов
/ 02 февраля 2011

Кажется, мне удалось решить это самостоятельно, добавив use lib "/opt/plugins/custom/SOAP

...