- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 JsonNode 存储到我的 spring jdbc session 中,
而当数据设置好并准备好通过 spring 插入数据库时,ConversionFailedException 被抛出。
我尝试了与下面提到的相同的方法,但不起作用。
@EnableJdbcHttpSession(maxInactiveIntervalInSeconds = 1800)
public class MyConfiguration extends WebMvcConfigurerAdapter {
}
// session class
@Component
@Scope(value = SCOPE_SESSION, proxyMode = TARGET_CLASS)
public class SessionForm implements Serializable {
private String someOtherFeild;
private JsonNode custom;
....
}
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.Object] to type [byte[]] for value 'com.rakuten.payment.step.app.step.model.session.SessionForm@e943f2d'; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: com.fasterxml.jackson.databind.node.ObjectNode
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:43)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:203)
at org.springframework.session.jdbc.JdbcOperationsSessionRepository.serialize(JdbcOperationsSessionRepository.java:627)
at org.springframework.session.jdbc.JdbcOperationsSessionRepository.access$400(JdbcOperationsSessionRepository.java:129)
at org.springframework.session.jdbc.JdbcOperationsSessionRepository$1$2.setValues(JdbcOperationsSessionRepository.java:403)
at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:960)
at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:950)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:633)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:662)
at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:950)
at org.springframework.session.jdbc.JdbcOperationsSessionRepository$1.doInTransactionWithoutResult(JdbcOperationsSessionRepository.java:395)
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:34)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at org.springframework.session.jdbc.JdbcOperationsSessionRepository.save(JdbcOperationsSessionRepository.java:377)
at org.springframework.session.jdbc.JdbcOperationsSessionRepository.save(JdbcOperationsSessionRepository.java:129)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.commitSession(SessionRepositoryFilter.java:245)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.access$100(SessionRepositoryFilter.java:217)
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:170)
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
最佳答案
尝试将您的组件更改为:
@Component
@Scope(value = SCOPE_SESSION, proxyMode = TARGET_CLASS)
public class SessionForm implements Serializable {
private String someOtherFeild;
private JsonNode custom;
private void writeObject(ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
if(custom== null){
out.writeBoolean(false);
} else {
out.writeBoolean(true);
new ObjectMapper().configure(JsonGenerator.Feature.AUTO_CLOSE_TARGET, false).writeValue(out, custom);
}
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
if(in.readBoolean()){
this.custom = new ObjectMapper().configure(JsonParser.Feature.AUTO_CLOSE_SOURCE, false).readValue(in, JsonNode.class);
}
}
}
关于spring-session - Spring jdbcSession : Not able to serialize JsonNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53185189/
我正在使用 jackson 库。我有很多 java 对象,它们只不过是 jsonNode 的包装器。因此想要将这些 jsonNodes 列表转换为单个 jsonNode。我怎样才能做到这一点。我试过这
我有主 JsonNode,{{k1:v1} = s1,{k2:v2} = s2,{k3:v3} = s3} 我单独获取一个节点键 {k1 : v1} 并将其分配给另一个变量并将其更新为 {k1 : n
我正在用 Java 编写 Play 2.3.2 应用程序。 在我的应用程序中,我调用了用 Scala 编写的其他模块的方法。 此方法返回一个 Json 响应,我尝试使用 WS 获取该响应。 这是我的方
我在写这篇文章时需要一些指导,以便我理解这个概念: 基本上,我需要在 String 和 JsonNode 之间进行转换,并且我已经看到了一个说明要做什么的答案,但作为新手开发人员,我不确定这意味着什么
我有以下 Json { "Parent": { "pk1": "pv1", "pk2": "pv2", "Child": {
我是 Java 菜鸟,正在努力进行类型转换。我有一个如下所示的 JSON 对象: [ { "A":{ "B":{
我遇到了转换错误,但不知道如何解决。 //get my json file as Map Map cm = null; try { cm = mapper.readValu
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 3 年前。 我需要获取此 arrayNode
我刚刚从 sourceforge.net 安装了 libjson。我尝试执行一个简单的程序但是我得到了这个错误 ‘JSONNode’ was not declared in this scope 这是
我在 Java 中使用 Jackson 库生成了以下 Json: { "name": "name1", "version": "0.0.1", "storage": {
我有以下 JSON 文件。 { "data": { "k1": "v1", "k2": "v2", ... } } 有什么方法可以将这些键和值作为 Map 获取吗?使用
通过 Play WS API,我得到了一个 Response 对象。因为它包含我调用的 JSON response.asJson() 这工作得很好。现在我想以 pretty-print 版本返回这个
我有这个json: { "text":[ {"a":1}, {"b":2} ] } 我有这个代码: JsonNode jsonNode = (new O
我正在尝试更新 expiryDate将嵌套的 JsonObject 中的变量设置为当前日期,JSON 的结构如下: { "expiryDate" : { "type" : "S
如何将 JsonNode 作为 java.email 中的电子邮件附件作为 json 文件发送 // Json node bit JsonNode requestBody = request().
考虑以下 Java 类定义。 CrudOperation.java: package com.cyberfront.test.json.nll.demonstration; import com.fa
我有一个类: Class myClass { @JsonProperty("status") boolean status; public boolean getStatus(
我正在从 cassandra 表中读取数据记录。创建我构建的 Java 对象。使用我从数据记录中获得的值设置所有值(我使用 jackson 从记录中获取这些值)。当我查看 json 请求时,我看到一个
我有一个Jackson子类型 ObjectNode 的 JsonNode: ObjectNode node = parent.path('somepath'); node 有许多子字段,例如您在这个
我有以下代码,它从 JsonNode 返回 string 的 list: public static List asList(final JsonNode jsonNode) {
我是一名优秀的程序员,十分优秀!