小编nul*_*ptr的帖子

龙目岛-java.lang.StackOverflowError:toString方法上为null

我有两个班ProductCategorie。如categoryRepository.save(c1)以下代码所示,当我要修改categorie中的产品列表时,会发生此错误:

 java.lang.StackOverflowError: null
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:449) ~[na:1.8.0_191]
        at java.lang.StringBuilder.append(StringBuilder.java:136) ~[na:1.8.0_191]
        at org.sid.entities.Product.toString(Product.java:12) ~[classes/:na]
        at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_191]
        at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_191]
        at java.util.AbstractCollection.toString(AbstractCollection.java:462) ~[na:1.8.0_191]
        at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_191]
        at java.lang.StringBuilder.append(StringBuilder.java:131) ~[na:1.8.0_191]
        at org.sid.entities.Categorie.toString(Categorie.java:15) ~[classes/:na]
        at java.lang.String.valueOf(String.java:2994) ~[na:1.8.0_191]
Run Code Online (Sandbox Code Playgroud)
@Document
@Data @AllArgsConstructor @NoArgsConstructor @ToString
public class Categorie {
    @Id
    private String id;
    private String name;
    @DBRef
    @JsonIgnore
    private Collection<Product> products=new ArrayList<>();

@Document
@Data @AllArgsConstructor @NoArgsConstructor @ToString
public class Product {
    @Id
    private String id;
    private String name;
    private double price; …
Run Code Online (Sandbox Code Playgroud)

java java-ee mongodb lombok spring-boot

3
推荐指数
1
解决办法
2526
查看次数

Google Recaptcha V3 - 通过 URL 加载验证码时的小部件 ID

我正在我的网站上实施 Recaptcha V3,如果我的请求失败,我找不到重置令牌的正确方法。

按照文档,要加载重新验证码,我需要在我的页面上包含以下脚本:

<script src='https://www.google.com/recaptcha/api.js?render=MY_KEY'></script>
Run Code Online (Sandbox Code Playgroud)

此外,我将验证码令牌绑定到一个字段,以便在客户选择发送电子邮件时在我的后端进行验证:

    grecaptcha.ready(function() {
        grecaptcha.execute('MY_KEY', {
            action : 'homepage'
        }).then(function(token) {
            $("#recaptcha").val(token);
        });
    });
Run Code Online (Sandbox Code Playgroud)

所以我主要有两个步骤:

  1. 验证验证码
  2. 发送电子邮件

如果在第二步中发生某些错误,我无法找到重置页面上当前验证码的方法,因为如果我再试一次,它已经被验证,它不再有效。

我已经尝试过grecaptcha.reset(),但没有widgetId出现以下消息:Uncaught Error: No reCAPTCHA clients exist.

通过脚本渲染时如何获取小部件 ID?

javascript jquery recaptcha invisible-recaptcha recaptcha-v3

1
推荐指数
1
解决办法
3869
查看次数

@JsonSerialize 和 @JsonDeserialize 包含在注释中时不起作用

我试图创建一个自定义注释来标记给定的属性,当它被注释时总是,所以我有以下结构:

@JsonComponent
public class TokenSerializer {

    @JsonSerialize(using = IdToTokenSerializer.class) // This does not work 
    @JsonDeserialize(using = TokenToIdDeserializer.class) // This does not work 
    @Retention(RetentionPolicy.RUNTIME)
    public static @interface TokenizedId {
        Class<?> value();
    }

    public static class IdToTokenSerializer extends JsonSerializer<Long> implements ContextualSerializer {
        ...
    }

    public static class TokenToIdDeserializer extends JsonDeserializer<Long> implements ContextualDeserializer {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么我这样用?因为@TokenizedId将提供一个类,该类将有条件地考虑在序列化器/反序列化器上做某事。该值是使用 配置的ContextualDeserializer,从 中获取类@TokenizedId

问题是,当我这样注释时,序列化器和反序列化器都不起作用:

@TokenizedId(MyClass.class)
private Long id;
Run Code Online (Sandbox Code Playgroud)

但是,他们在工作的时候使用这样(去除@JsonSerialize@JsonDeserialize@TokenizedId):

@JsonSerialize(using = IdToTokenSerializer.class)
@JsonDeserialize(using …
Run Code Online (Sandbox Code Playgroud)

java serialization jackson spring-boot

0
推荐指数
1
解决办法
2176
查看次数