我在Spring-boot 2.2.1上使用Spring-Web5.2.3将REST服务器与mysql和JavaFX客户机连接起来。我想从客户端发送http请求到服务器。For方法GET工作得很好,但For POST工作得不好。
我的实体:
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Entity(name = "CANDIDATES")
public class Candidate {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String lastname;
@Enumerated(EnumType.STRING)
private Education education;
private String placeOfResidence;
@ManyToMany(cascade = CascadeType.PERSIST)
@JoinTable(
name = "JOIN_VOTERESULTS_CANDIDATES",
joinColumns = {@JoinColumn(name = "CANDIDATES_ID", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "VOTERESULTS_ID",referencedColumnName = "ID")}
)
private List<VoteResult> voteResults;
@ManyToOne
@JoinColumn(name = "ELECTION_LISTS_ID")
private ElectionList electionList;
@ManyToOne
@JoinColumn(name = "ELECTORAL_PARTIES_ID")
private ElectoralParty electoralParty;
}
@PostMapping(value = "/createCandidate")
public void createCandidate(@Valid CandidateDto candidateDto) {
service.createCandidate(candidateDto);
}
RestTemplate restTemplate = new RestTemplate();
restTemplate.setMessageConverters(getMessageConverters());
URI url = UriComponentsBuilder.fromHttpUrl(URL + "/createCandidate")
.queryParam("id", candidate.getId())
.queryParam("name", candidate.getName())
.queryParam("lastname", candidate.getLastname())
.queryParam("education", candidate.getEducation())
.queryParam("placeOfResidence", candidate.getPlaceOfResidence())
.queryParam("voteResults", candidate.getVoteResults())
.queryParam("electionList", candidate.getElectionList())
.queryParam("electoralParty", candidate.getElectoralParty()).build().encode().toUri();
restTemplate.postForObject(url, null, Candidate.class);
Field error in object 'candidateDto' on field 'education': rejected value [zawodowe]; codes [typeMismatch.candidateDto.education,typeMismatch.education,typeMismatch.com.pk.electionappserver.domain.Education,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [candidateDto.education,education]; arguments []; default message [education]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'com.pk.electionappserver.domain.Education' for property 'education'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [com.pk.electionappserver.domain.Education] for value 'zawodowe'; nested exception is java.lang.IllegalArgumentException: No enum constant com.pk.electionappserver.domain.Education.zawodowe]
Field error in object 'candidateDto' on field 'electionList': rejected value []; codes [typeMismatch.candidateDto.electionList,typeMismatch.electionList,typeMismatch.com.pk.electionappserver.domain.dto.ElectionListDto,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [candidateDto.electionList,electionList]; arguments []; default message [electionList]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'com.pk.electionappserver.domain.dto.ElectionListDto' for property 'electionList'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.pk.electionappserver.domain.dto.ElectionListDto' for property 'electionList': no matching editors or conversion strategy found]
Field error in object 'candidateDto' on field 'electoralParty': rejected value []; codes [typeMismatch.candidateDto.electoralParty,typeMismatch.electoralParty,typeMismatch.com.pk.electionappserver.domain.dto.ElectoralPartyDto,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [candidateDto.electoralParty,electoralParty]; arguments []; default message [electoralParty]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'com.pk.electionappserver.domain.dto.ElectoralPartyDto' for property 'electoralParty'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.pk.electionappserver.domain.dto.ElectoralPartyDto' for property 'electoralParty': no matching editors or conversion strategy found]
Field error in object 'candidateDto' on field 'voteResults': rejected value []; codes [typeMismatch.candidateDto.voteResults,typeMismatch.voteResults,typeMismatch.java.util.List,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [candidateDto.voteResults,voteResults]; arguments []; default message [voteResults]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.List' for property 'voteResults'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.String' to required type 'com.pk.electionappserver.domain.dto.VoteResultDto' for property 'voteResults[0]': no matching editors or conversion strategy found]]
Caused by: org.springframework.web.client.HttpClientErrorException$BadRequest: 400 : [{"timestamp":"2020-01-17T16:17:45.333+0000","status":400,"error":"Bad Request","errors":[{"codes":["typeMismatch.candidateDto.education","typeMismatch.education","typeMismatch.com.pk.electionappserver... (3565 bytes)]
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:101)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:170)
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:112)
at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:785)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:743)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:717)
at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:443)
at com.pk.electionappclient.Controller.ClientController.createCandidate(ClientController.java:36)
at com.pk.electionappclient.Controller.ClientController.addCandidate(ClientController.java:84)
at com.pk.electionappclient.Controller.admin.NewCandidateController.createNewCandidate(NewCandidateController.java:116)
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Entity(name = "VoteResults")
public class VoteResult {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "USERS_ID")
private User user;
@ManyToOne
@JoinColumn(name = "ELECTIONS_ID")
private Election election;
@ManyToMany(cascade = CascadeType.PERSIST)
@JoinTable(
name = "JOIN_VOTERESULTS_CANDIDATES",
joinColumns = {@JoinColumn(name = "VOTERESULTS_ID",referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "CANDIDATES_ID", referencedColumnName = "ID")}
)
private List<Candidate> candidates;
private LocalDateTime voteTime;
}
选举名单实体:
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Entity(name = "ELECTION_LISTS")
public class ElectionList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
@ManyToOne
@JoinColumn(name = "ELECTION_ID")
private Election election;
@ManyToOne
@JoinColumn(name = "CONSTITUENCY_ID")
private Constituency constituency;
@OneToMany(
targetEntity = Candidate.class,
mappedBy = "electionList",
cascade = CascadeType.PERSIST,
fetch = FetchType.LAZY
)
private List<Candidate> candidates;
}
ElectoralParty实体:
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Entity(name = "ELECTORAL_PARTIES")
public class ElectoralParty {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String description;
@OneToMany(
targetEntity = Candidate.class,
mappedBy = "electoralParty",
cascade = CascadeType.PERSIST,
fetch = FetchType.LAZY
)
private List<Candidate> candidates;
@OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@JoinColumn(name = "ELECTORAL_PROGRAMMES_ID")
private ElectoralProgramme electoralProgramme;
}
这是控制器代码部分: 我收到这条消息: 出现错误(类型=错误请求,状态=400)。无法将类型[java.lang.String]的值转换为所需类型[java.util.Date];嵌套异常为org.springframework.core.convert.conversionfailedexception:无法将值“Wed Jun 08 00:00:00 WET 2016”从类型[java.lan
我有两个实体,它们使用一个主键互相引用,主键是一个实体的整数。我不确定我做这件事的方式是否正确。 下面是引用主键id为int的实体 下面是我们从上面的实体中将外键设置为Kmichango kandaMchango的实体。 这里是表单的一部分,我在这里提交了用户在jumuiya_michango_form.html中提供的数据 下面是我的控制器中用于链接到表单和发布数据的两个方法 在我提交表单后,我
我正在关注Spring in Action 5,在按下提交按钮后创建Taco模型时遇到问题。这是我的设计Taco控制器类: 以及我捕获的错误消息: 炸玉米饼实体如下所示: 以及我的配料实体: 这是一个html页面,必须使用所选成分创建新的Taco对象: 我该怎么修理它?谢谢你的预付款。
我正试图通过提供JSON格式的所需请求来使用postman来访问一个服务: 邮递员屏幕 但我得到了一个错误: “无法将类型”java.lang.String“的值转换为所需的类型”SampleRequestObject“;嵌套异常为java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为所需类型“ 控制器 SampleRequestO
我是Spring MVC的新手,试图构建一个示例应用程序,我试图将数据保存到一个名为EmployeeDetails的表中,该表与表用户有一对一的关系。提交表单后,我在字段“user”的对象“employee details”中得到了这个错误字段:rejected value[Users];代码[typemismatch.employeeDetails.user,typemismatch.user,
问题内容: 我想使用@Value注释注入Double属性,例如: 并使用Spring属性占位符(属性文件): 我得到异常: org.springframework.beans.TypeMismatchException:无法将类型“ java.lang.String”的值转换为所需的类型“ java.lang.Double”;嵌套的异常是java.lang.NumberFormatExceptio
我是SpringMVC的新手。我开发了一个执行选择,插入,更新和删除的示例应用程序。 下面是我的Bean类 下面是我的控制器类 下面是我的JSP页面 现在我面临两个问题。输入值并单击“添加学生”按钮后,收到以下错误。
当我尝试使用这些url时:http://www.localhost:8080/api/employee/search?startDate=2000-10-22 此错误消息显示:"未能将'java.lang.String'类型的值转换为所需的类型'java.util.Date';嵌套异常org.springframework.core.convert.ConversionFailedExceptio