2011-02-02 2 views
0

Это мой первый вопрос здесь (и в любом месте по теме perl), так голый со мной. Я пытаюсь написать сценарий для использования с op5/nagios. Что он пытается сделать, так это подключиться к базе данных, получить там значение, а затем отправить запрос в веб-службу и сопоставить ответ из веб-службы со значением из базы данных.Perl :: WSDL. Сгенерированные методы в разных направлениях, чем сценарий

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

Помощь любого рода оценили! Маркус

+0

Глядя более внимательно сгенерированных методов все они ссылаются друг на друга. Кажется, для того, чтобы я мог использовать их из другого, мне пришлось бы менять место, когда скрипт выполняется или редактирует «базовый каталог», откуда импортируются методы. Возможно ли это? – user599703

+0

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

ответ

0

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

Смежные вопросы