Итак, я пытаюсь сделать SOAP-запрос к OTRS на сервере CentOS Linux. Кто-то сделал для этого PL-SQL-пакет в базе данных Oracle, и он отлично работает, если в данных нет умлаута (Ü).
Это ошибка, которую я получаю в журнале ошибок Linux:
Feb 17 08:32:26 eotrs2 GenericInterfaceProvider-10[11317]: [Error][Kernel::GenericInterface::Debugger::DebugLog][Line:218]: DebugLog error: Summary: Error deserializing message:not well-formed (invalid token) at line 1, column 528, byte 528 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187. Data : No data provided.
Feb 17 08:32:26 eotrs2 GenericInterfaceProvider-10[11317]: [Error][Kernel::GenericInterface::Debugger::DebugLog][Line:218]: DebugLog error: Summary: Request could not be processed Data : Error deserializing message:not well-formed (invalid token) at line 1, column 528, byte 528 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187..
Feb 17 08:32:26 eotrs2 GenericInterfaceProvider-10[11317]: [Error][Kernel::GenericInterface::Debugger::DebugLog][Line:218]: DebugLog error: Summary: Returning provider data to remote system (HTTP Code: 500) Data : Error deserializing message:not well-formed (invalid token) at line 1, column 528, byte 528 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187..
До того, как у нас появился пакет PL/SQL, мы использовали сценарий Perl на том же сервере, где служба OTRS работала с использованием SOAP::Lite
. Активировав трассировку в этом Perl-скрипте, я понял, что он просто меняет умляут "Ü" в XML-файле, который я предоставляю, на "Ã�" в SOAP-запросе, что, очевидно, тоже неверно.
NLS_CHARACTERSET
в базе данных Oracle AL32UTF8
. NLS_LAN
из otrs
пользователей на сервере German_Austria.utf8
Какие-либо предложения?