Канал REST Джерси в weblogic вернул «ноль» вместо сериализованного JSON — ошибки нет

У меня есть трикотажный REST-канал, развернутый на weblogic. Все методы настроены на возврат данных JSON. Джерси использует Джексона внутри. Один из этих методов работает все время и возвращает правильные данные, а другой возвращает «ноль». Буквально это означает, что на экране написано «ноль». Но метод точно не возвращает null, потому что я все логирую.

Похоже, что ошибки нет, поскольку в журналах не печатается никаких ошибок, и я установил уровень «INFO» для корневого регистратора в конфигурации log4j. Так что я немного растерялся - понятия не имею, что может быть не так, когда об ошибке не сообщается, а возвращается просто ноль. Кто-нибудь может помочь? Как хотя бы выяснить, что не так?

--изменить--

В моем случае это было вызвано отсутствием геттеров/сеттеров в полях класса ответа. Есть конструктор, который использовал GSON, но не jersey/jackson. Но раздражает то, что эти инструменты только что вернули null и не выдали никаких исключений. Так еще вопрос, как отлаживать такие ошибки, можно ли заставить jersey/jackson печатать найденные проблемы, а не такое детское поведение ;)


person Danubian Sailor    schedule 31.01.2012    source источник
comment
Какой инструмент вернул null? Какое отношение конструктор имеет к сериализации JSON (они используются только для десериализации, т.е. при чтении JSON, создании объектов)?   -  person StaxMan    schedule 02.02.2012
comment
Но в целом нет ничего плохого в том, чтобы возвращать null из привязки данных; или напишите JSON со значением 'null'. Что именно нужно выкинуть и почему? У вас есть примеры кода? В чем здесь конкретная проблема?   -  person StaxMan    schedule 02.02.2012


Ответы (2)


Вы проверили метод toString возвращаемого объекта?

person David Grant    schedule 31.01.2012
comment
Это именно то, что я пишу в журналы. И объект правильный и полный. - person Danubian Sailor; 31.01.2012
comment
Это не было проблемой, но проблема с кодом все еще была. Я все еще ожидаю, что инструмент напечатает ошибку, а не просто вернет null. - person Danubian Sailor; 01.02.2012
comment
Можете ли вы добавить модульные тесты для сериализации/десериализации ваших объектов с помощью Jackson? - person David Grant; 01.02.2012
comment
@lechlukasz Что именно будет ошибкой? Null — вполне приемлемое значение JSON для сериализации в общем случае. - person StaxMan; 02.02.2012
comment
Ошибка заключалась в том, что значение не было сериализовано, но эта ошибка нигде не отображалась. - person Danubian Sailor; 02.02.2012

Я решил эту проблему, используя gson, чтобы вручную сериализовать объекты в JSON, и я объявил возвращаемый функцией тип String, и у меня не было никаких проблем с его развертыванием и использованием в разделе weblogic и с ошибками отладки, так что это мое решение, работающее для меня, которое я бы порекомендовал всем, у кого есть подобные проблемы.

person Danubian Sailor    schedule 08.02.2012