OmniFaces Json#encode()堆栈溢出,带有IllegalArgumentException:无法调用属性的getter';类别';豆角';类java.lang.class';

OmniFaces Json#encode()堆栈溢出,带有IllegalArgumentException:无法调用属性的getter';类别';豆角';类java.lang.class';,json,jsf,stack-overflow,omnifaces,Json,Jsf,Stack Overflow,Omnifaces,我遇到了一个stackoverflow异常,正如文档()中所解释的那样 发送字符串以外的任何内容(即bean或HashMap)时会发生错误 当map/bean属性之一是类对象,而类属性反过来引用自身时,它确实会以这种方式失败。也许是因为的严重性 我根据改进的Json#encode()在遇到Class实例时只打印Class#getName(),而不是将其作为bean处理。修复程序可根据OmniFaces 2.5获得。谢谢,我已将代码更改为发送字符串而不是枚举。 @Push @Inject priv

我遇到了一个stackoverflow异常,正如文档()中所解释的那样

发送字符串以外的任何内容(即bean或HashMap)时会发生错误


当map/bean属性之一是
对象,而
属性反过来引用自身时,它确实会以这种方式失败。也许是因为
的严重性


我根据改进的
Json#encode()
在遇到
Class
实例时只打印
Class#getName()
,而不是将其作为bean处理。修复程序可根据OmniFaces 2.5获得。

谢谢,我已将代码更改为发送字符串而不是枚举。
@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