Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有关于构造函数(Spring boot和Vaadin)_Java_Spring_Spring Boot_Vaadin - Fatal编程技术网

Java 我有关于构造函数(Spring boot和Vaadin)

Java 我有关于构造函数(Spring boot和Vaadin),java,spring,spring-boot,vaadin,Java,Spring,Spring Boot,Vaadin,当我打开调试器时,我的项目出现错误 org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.example.vaadin.DTO.ContactInfo]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Ca

当我打开调试器时,我的项目出现错误

org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.example.vaadin.DTO.ContactInfo]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.example.vaadin.DTO.ContactInfo` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
我的项目,一些课程。看起来他写的一切都是正确的,得到了必要的注释,但他给了我一个错误,通过了调试器。您可以查看代码,可能项目中有一些内容写得不正确。我想在界面中显示域信息

我的代码

@Data
@AllArgsConstructor
public class ContactInfo {
    private String handle;
    private String name;
    private String voice;
    private String fax;
    private String email;
}
主视图

@Route
@Service
public class MainView extends VerticalLayout {

    RestTemplate restTemplate = new RestTemplate();

    public String URL() {
        return "http://localhost:8080/api/whois";
    }

    private ResponseEntity<DomainDTO> domainDTO(String url, Request request) {
//        return restTemplate.postForObject(url, request, DomainDTO.class);
        ResponseEntity<DomainDTO> domainDTOResponseEntity = restTemplate.postForEntity(url, request, DomainDTO.class);
        System.out.println(">>>>>>>>>>>>>>>" + domainDTOResponseEntity); ///////////////////////
        return domainDTOResponseEntity;
    }

    public MainView() {
        FormLayout formLayout = new FormLayout();
        TextField textField = new TextField();
        textField.setPlaceholder("please input domain");
        textField.setWidth("630px");
        textField.setHeight("50px");
        Text text1 = new Text("");
        VerticalLayout v1 = new VerticalLayout();
        v1.add(text1);
        Button button = new Button("SHOW");

        button.addClickListener(event -> {
                    DomainDTO dto = domainDTO(URL(), new Request(textField.getValue())).getBody();
                    text1.setText(report(dto));
                }
        );

        button.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
        formLayout.addFormItem(textField, "DOMAIN");
        button.setWidth("30%");
        formLayout.addFormItem(button, " ");
        add(formLayout, v1);
    }

    private String report(DomainDTO dto) {
        StringBuffer sb = new StringBuffer();
        sb
                .append("Domain Name............: ").append(dto.getDomainInfo().getDomainName()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Organization Using Domain Name").append(System.lineSeparator())
                .append("Name...................: ").append(dto.getDomainInfo().getName()).append(System.lineSeparator())
                .append("Organization Name......: ").append(dto.getDomainInfo().getOrganizationName()).append(System.lineSeparator())
                .append("Street Address.........: ").append(dto.getDomainInfo().getStreetAddress()).append(System.lineSeparator())
                .append("City...................: ").append(dto.getDomainInfo().getCity()).append(System.lineSeparator())
                .append("State..................: ").append(dto.getDomainInfo().getState()).append(System.lineSeparator())
                .append("Postal Code............: ").append(dto.getDomainInfo().getPostalCode()).append(System.lineSeparator())
                .append("Country................: ").append(dto.getDomainInfo().getCountry()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Administrative Contact/Agent").append(System.lineSeparator())
                .append("Nick Handle............: ").append(dto.getContactInfo().getHandle()).append(System.lineSeparator())
                .append("Phone Number...........: ").append(dto.getContactInfo().getVoice()).append(System.lineSeparator())
                .append("Fax....................: ").append(dto.getContactInfo().getFax()).append(System.lineSeparator())
                .append("Email Address..........: ").append(dto.getContactInfo().getEmail()).append(System.lineSeparator())
                .append(System.lineSeparator())
                .append("Nameserver in listed order").append(System.lineSeparator())
                .append(System.lineSeparator());

        dto.getHostInfo().forEach(hInfo -> sb
                .append("Server.................: ").append(hInfo.getName()).append(System.lineSeparator())
                .append("Ip address.............: ").append(hInfo.getIpaddr()).append(System.lineSeparator())
                .append(System.lineSeparator())
        );

        sb.append(System.lineSeparator());

        dto.getStatusInfo().forEach(sInfo -> sb
                .append("Domain created: ").append(sInfo.getCreated()).append(System.lineSeparator())
                .append("Last modified: ").append(sInfo.getUpdated()).append(System.lineSeparator())
                .append("Domain status: ").append(sInfo.getStatus()).append(System.lineSeparator())
                .append("Registrar created: ").append(sInfo.getRegistarcr()).append(System.lineSeparator())
                .append("Current Registrar: ").append(sInfo.getRegistrar()).append(System.lineSeparator())
                .append(System.lineSeparator())
        );

        return sb.toString();
    }
}

您还需要在ContactInfo和DomainDTO这两个类中的@AllArgsConstructor之后添加注释@NoArgsConstructor

,您需要使用
@NoArgConstructor
注释
ContactInfo
DomainDTO
,可能重复的I没有帮助(((我没有帮助)(((
@Data
@AllArgsConstructor
public class DomainDTO {
    private DomainInfo domainInfo;
    private ContactInfo contactInfo;
    private List<HostInfo> hostInfo;
    private List<StatusInfo> statusInfo;




}
@Configuration
public class AppConfig {

    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}