Веб-сервисы java Metro stack пишут собственный сериализатор / десериализатор - PullRequest
0 голосов
/ 22 марта 2011

Возникает проблема с возвратом данных из веб-служб.
Я использую стек Metro.

Проблема:
Проблема в том, что мои данные содержат некоторые управляющие символы.Я не хочу зашифровывать свои данные, так как это повлечет за собой изменения кода на стороне клиента.
Лучше всего удалить управляющие символы, но сканирование по символам и удаление / замена всех символов окажет некоторое влияние на производительность.

Возможное решение:
Я хочу перехватить SOAP-сообщение, прежде чем metro отправит его клиенту и проверит управляющие символы.А затем замените все управляющие символы XML перед возвратом.

У кого-нибудь здесь есть идеи, как перехватить ответ перед возвратом?Или
как я могу написать свой собственный сериализатор / десериализатор, где я могу заменить контрольный символ?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 18 июля 2011

Я нашел XMLAdapter очень полезным в моем случае.Добавление информации, как в случае, если любой приятель может найти это полезным.Ссылка: http://weblogs.java.net/blog/kohsuke/archive/2005/09/using_jaxb_20s.html

XMLAdapter содержит абстрактный метод marshal и unmarshal.Поэтому я использовал соответствующий кодировщик в методе маршала / демаршала.

0 голосов
/ 23 мая 2011

Полагаю, вы можете использовать интерфейс Provider для этого. Ваша реализация провайдера будет вызвана вместо реального веб-сервиса. Затем вы проанализируете XML и перенаправите вызов реализации сервиса.

Мне несколько неудобно работать, но если это работает ..

...