您好,我正在使用swagger code gen(v3)在我的Spring Boot项目中使用pom中的以下配置生成服务客户机。xml
<configuration>
<language>java</language>
<inputSpec>specs.yaml</inputSpec>
<apiPackage>api</apiPackage>
<modelPackage>model</modelPackage>
<invokerPackage>invoker</invokerPackage>
<generateApis>true</generateApis>
<generateApiTests>false</generateApiTests>
<generateApiDocumentation>false</generateApiDocumentation>
<generateSupportingFiles>true</generateSupportingFiles>
<generateModelDocumentation>false</generateModelDocumentation>
<generateModelTests>false</generateModelTests>
<typeMappings>
<typeMapping>DateTime=LocalDateTime</typeMapping>
<typeMapping>Date=LocalDate</typeMapping>
</typeMappings>
<importMappings>
<importMapping>LocalDateTime=java.time.OffsetDateTime</importMapping>
<importMapping>LocalDate=java.time.LocalDate</importMapping>
</importMappings>
<configOptions>
<library>resttemplate</library>
<interfaceOnly>true</interfaceOnly>
<useTags>true</useTags>
<useBeanValidation>true</useBeanValidation>
<dateLibrary>java8</dateLibrary>
<java8>true</java8>
<sourceFolder>/<sourceFolder>
</configOptions>
</configuration>
我面临的问题是通过上述配置生成的Api客户端执行POST请求时。发布请求看起来像
{
"name": "abc",
"type": "xyz",
"businessdata": {
"currency": "INR",
"startDate": [2020,5,28],
"endDate": [2021,12,25],
"code": "X123"
},
"seqnumber": "987"
}
在这里,starDate和endDate是Java类中的LocalDate,它们也是由Open Api规范生成的。在这里,我不明白为什么它转换为括号[],因此其他系统正在接收此请求抛出无效的日期例外。
请让我详细解释如何解决这个问题。
在所有RestTemplate
实例中更新ObjectMapper
的完整解决方案:
@Configuration
public class RestTemplateConfiguration {
@Bean
public RestTemplate getRestClient() {
RestTemplate template = new RestTemplate();
template.getMessageConverters().stream()
.filter(converter -> converter instanceof AbstractJackson2HttpMessageConverter)
.map(converter -> (AbstractJackson2HttpMessageConverter) converter)
.forEach(converter -> converter.getObjectMapper()
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
);
return template;
}
}
我在ObjectMapper
对象中做了同样的事情,同时将其传递给rest模板
:
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
问题内容: 我正在使用$ resource并缓存get请求的结果。我的问题是,在发布请求后,缓存不会失效。 这是服务的返回值: 这是我在控制器内部使用的保存方法。如您所见,我正在对post请求使用回调,以重新计算名词的查询/列表。 我想在调用post或其他非get方法后使缓存无效。我该怎么办?这是否已经内置在$ resource中,还是我需要自己实现? 问题答案: 您可以创建包装器服务以根据需要进
更新:工作代码! 这是我用来发出POST请求的代码: 作为我得到的回应:未能发布数据400,错误流内容是:{ “代码”:“empty_content”,“消息”:“内容,标题和摘录都是空的。
我正在尝试根据下面的代码提出帖子请求: 此请求不需要身份验证,也不需要登录和密码。在邮递员那里,我可以成功地提出请求,但当我尝试执行上述代码时,我得到了: 401未经授权 我在邮递员那里模拟了错误,它给了我下面的信息: 当我在Postman中将身份验证方法更改为“No Auth”时,请求运行良好。 我想我必须在代码中设置这个选项“No Auth”,但我不知道如何设置。 我这样做: 但错误仍在继续。
问题内容: 我想使用wget将图片(使用身份验证令牌“ AUTH_1624582364932749DFHDD”)上传到远程服务器到“ test”文件夹。 该命令不起作用(授权失败),我想确保它与语法无关: 有什么建议么? 问题答案: Wget当前仅支持x-www-form-urlencoded数据。不是用于将文件作为表单附件传输,而是需要格式为的数据。 并以相同的方式工作:唯一的不同是,您可以在命
我正在尝试从一个简单的Java项目创建一个HTTP POST请求。 我需要通过两个请求保留会话和cookie,所以我选择了Apache HttpClient。 代码编译时没有错误,也没有运行,但返回的内容长度为零,我不明白为什么。 结果是: 更新:我发现响应状态是302(已找到),当我从邮递员那里做同样的请求时,它是200(OK)。 任何人都可以告诉我我的代码有什么问题吗? 谢谢
问题内容: 我想向Access插入一个datetime值,但是出现此错误: net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc ::: 3.0.4数据异常:无效的日期时间格式 这是代码: 问题答案: 错误消息表明您的方法最终试图做类似的事情 并且由于以下两个原因将无法正常工作: UCanAccess希望日期文字被括在井号()中,并且 UCanAcce