Я не знаю Java и не могу проверить ваш код. Если у вашего клиента есть какой-либо другой метод соединения, кроме XML, передаваемого через SOAP, используйте его! Это верно для любого SOAP и большинства XML API, которые я видел в прошлом.
Вы запускали этот Perl-код и проверяли, что он работает?
Если это так: добавьте отладку, чтобы посмотреть, что он делает, и сравните это с вашим скриптом. XMLRPC :: Lite утверждает, что основан на SOAP :: Lite, который имеет отладку при использовании
use SOAP::Lite +trace;
Три шанса. Во-первых, добавление этой строки позволяет отлаживать также XMLRPC :: Lite. Второе: добавьте флаг «+ trace» в строку «use XMLRPM :: Lite», чтобы включить отладку. Третье: возможно, отладка SOAP невозможна, если ее называют XMLRPC :: Lite.
Смотрите здесь для получения дополнительной информации: http://metacpan.org/pod/SOAP::Trace
Наконец, анализатор пакетов, такой как tcpdump, может показать вам, что передается.
Я подозреваю, что либо ваша структура XML отличается от структуры Perl, либо они отличаются только пробелами, переносами строк или порядком элементов, и сервер на другой стороне принимает не настоящий XML, а текстовый блок с ключевыми словами, включенными в < >.