2016-08-28 8 views
2

Я испытываю StackOverflow исключение делает именно так, как описано в документации (here)OmniFaces Json # закодировать() переполнение стека с IllegalArgumentException: Невозможно вызвать метод получения имущества «классов» фасоли «класса java.lang.Class»

Ошибка возникает при отправке ничего, кроме строки (например, компонента или HashMap).

@Push 
@Inject 
private PushContext console; 

void onEvent(@Observes ApplicationEvent event) { 

    final Map<String, Object> dto = new HashMap<>(); 
    dto.put("timestamp", event.getTimestamp()); 
    dto.put("message", event.getMessage()); 
    dto.put("severity", event.getSeverity()); 
    console.send(dto); 

    // console.send(event); This line does not work 
    // console.send(event.getMessage()); This line works 
} 

.

Стек след

Caused by: java.lang.IllegalArgumentException: Cannot invoke getter of property 'classes' of bean 'class java.lang.Class'. 
at org.omnifaces.util.Json.encodeBean(Json.java:178) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeBean(Json.java:191) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeArray(Json.java:123) 
at org.omnifaces.util.Json.encode(Json.java:83) 
at org.omnifaces.util.Json.encodeBean(Json.java:191) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeBean(Json.java:191) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeArray(Json.java:123) 
at org.omnifaces.util.Json.encode(Json.java:83) 
at org.omnifaces.util.Json.encodeBean(Json.java:191) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeBean(Json.java:191) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeBean(Json.java:191) 
at org.omnifaces.util.Json.encode(Json.java:89) 
at org.omnifaces.util.Json.encodeArray(Json.java:123) 
// Repeats to infinity & beyond 

ответ

1

Это действительно не в состоянии таким образом, когда один из свойств карты/боба является Class объект, classes свойство в себе свою очередь, ссылки. Возможно, это severity?

меня, как на this commitJson#encode() улучшилось просто распечатать Class#getName() когда экземпляр Class встречается вместо обработки его в качестве компонента. Исправление доступно в соответствии с OmniFaces 2.5.

+0

Спасибо, я изменил код, чтобы отправить строку вместо enum. – klonq

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

  • Нет связанных вопросов^_^