-
FEATURED COMPONENTS
First time here? Check out the FAQ!
We have an aplication based on ZK with Spring Boot / Spring Security / JPA implementation running in Google Cloud Run, within a docker. It works quite fine with non jdbc persistent sessions. Google is probably sending the requests with the same JSESSION_ID to same server of the server pool. Unfortunatelly, too often the aplication closes and the user has to relogin, probably when the server previously answering the requests is shutdown or becomes too busy and Google decides to change the destination server.
Our idea to improve usability was to implement the Spring persistent session which is very easy to implement. It is just about adding in the Pom :
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-jdbc</artifactId>
</dependency>
and the .properties :
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=ALWAYS
The table for holding the session data is created, the server starts, but when trying to load the login page we get the following error :
2022-01-04 16:50:19.395 INFO 15092 --- [nio-8443-exec-4] o.z.util.resource.impl.LabelLoaderImpl : Loading labels for es
2022-01-04 16:50:19.396 INFO 15092 --- [nio-8443-exec-4] o.z.util.resource.impl.LabelLoaderImpl : Opening file:/C:/gitlab/hov2-springboot/target/classes/metainfo/zk-label_es.properties
2022-01-04 16:50:19.399 INFO 15092 --- [nio-8443-exec-4] o.z.util.resource.impl.LabelLoaderImpl : Opening file:/C:/gitlab/hov2-springboot/target/classes/metainfo/zk-label.properties
2022-01-04 16:50:19.615 ERROR 15092 --- [nio-8443-exec-4] org.zkoss.io.serializable : Unable to serialize entry: $composer=org.zkoss.bind.BindComposer@45f1b067
2022-01-04 16:50:19.718 ERROR 15092 --- [nio-8443-exec-4] o.a.c.c.C.[.[.[/V2].[auEngine] : Servlet.service() for servlet [auEngine] threw exception
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.Object] to type [byte[]] for value 'org.zkoss.zk.ui.http.SerializableSession@1f9bd946'; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192)
.....
Caused by: org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:64)
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:33)
at org.springframework.core.convert.support.GenericConversionService$ConverterAdapter.convert(GenericConversionService.java:386)
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41)
... 155 common frames omitted
Caused by: java.io.NotSerializableException: org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1185)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
This error looks like this is one of the ZK framework object that is not serializable, I double checked that all the session data is serializable and did not find any thing wrong on that side.
I can add here some config files in this post, but i basically followed the instruccions from :
https://www.zkoss.org/wiki/ZKInstallationGuide/SettingupServers/GoogleAppEngine
the zk.xml is as follows :
<?xml version="1.0" encoding="UTF-8"?>
<zk>
<!-- clustering environment -->
<system-config>
<disable-event-thread/>
<ui-factory-class>org.zkoss.zk.ui.http.SerializableUiFactory</ui-factory-class>
</system-config>
<!-- clustering environment (available since ZK 5.0.8)-->
<listener>
<listener-class>org.zkoss.zkplus.cluster.ClusterSessionPatch</listener-class>
<listener-class>com.vyv.hov2.ui.MyDesktopInit</listener-class>
</listener>
<client-config>
<resend-delay>-1</resend-delay>
</client-config>
<device-config>
<!-- GAE doesn't allow user's thread -->
<resend-delay>-1</resend-delay>
<timeout-uri>/login</timeout-uri>
<!-- Configure the progress message to show in the center -->
<device-type>ajax</device-type>
<embed><![CDATA[
<script type="text/javascript">
AU_progressbar = function (id, msg)
{
Boot_progressbox(id, msg, 0, 0, true, true);
};
</script>
]]></embed>
<!-- An empty URL can cause the browser to reload the same URL -->
</device-config>
<config-name>zkspringboot-demo</config-name>
<language-config>
<addon-uri>/metainfo/zk/ckez-bind-addon.xml</addon-uri>
<addon-uri>/metainfo/zk/gmapsz-bind-addon.xml</addon-uri>
</language-config>
<language-mapping>
<language-name>xml</language-name>
<extension>svg</extension>
</language-mapping>
<language-mapping>
<language-name>xml</language-name>
<extension>xml2html</extension>
</language-mapping>
<!-- eso el dia que bajo en template...-->
<library-property>
<name>org.zkoss.theme.preferred</name>
<value>iceblue_c</value>
</library-property>
<!-- ZK properties loader -->
<library-property>
<name>org.zkoss.zul.listbox.rightSelect</name>
<value>true</value>
</library-property>
<library-property>
<name>org.zkoss.zul.tree.rightSelect</name>
<value>true</value>
</library-property>
<library-property>
<name>org.zkoss.zk.ui.input.grouping.allowed</name>
<value>false</value>
</library-property>
<library-property>
<name>org.zkoss.zul.listbox.checkmarkDeselectOthers</name>
<value>true</value>
</library-property>
<library-property>
<name>org.zkoss.zul.progressbox.position</name>
<value>center</value>
</library-property>
<library-property>
<name>org.zkoss.zul.listbox.autoSort</name>
<value>true</value>
</library-property>
<library-property>
<name>org.zkoss.zul.grid.autoSort</name>
<value>true</value>
</library-property>
</zk>
the ZK servlet registration beans are as follows :
/**
* Dhtml layout servlet servlet registration bean.
*
* @return the servlet registration bean
*/
@Bean
public ServletRegistrationBean dHtmlLayoutServlet() {
Map<String, String> params = new HashMap<String, String>();
params.put("update-uri", "/zkau");
DHtmlLayoutServlet dHtmlLayoutServlet = new DHtmlLayoutServlet();
ServletRegistrationBean reg = new ServletRegistrationBean(dHtmlLayoutServlet, "*.zul");
reg.setName("zkLoader");
reg.setLoadOnStartup(1);
reg.setInitParameters(params);
return reg;
}
@Bean
public ServletRegistrationBean dHtmlUpdateServlet() {
ServletRegistrationBean reg = new ServletRegistrationBean(new DHtmlUpdateServlet(), "/zkau/*", "/zkau");
reg.setName("auEngine");
reg.setLoadOnStartup(2);
return reg;
}
Extract of the POM :
<repositories>
<repository>
<id>ZK CE</id>
<name>ZK CE Repository</name>
<url>https://mavensync.zkoss.org/maven2</url>
</repository>
<!-- -->
</repositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<java.version>11</java.version>
<springfox-version>3.0.0</springfox-version>
<jacoco.percentage.instruction>0.0</jacoco.percentage.instruction>
<zk.version>9.6.0.1</zk.version>
<jr.version>6.17.0</jr.version>
<passay.version>1.0</passay.version>
<zkspringboot.version>2.3.1</zkspringboot.version>
<validation-api.version>2.0.1.Final</validation-api.version>
<javassist.version>3.27.0-GA</javassist.version>
<jaxb-api.version>2.4.0-b180830.0359</jaxb-api.version>
<maven.build.timestamp.format>yyyy-MM-dd'T'HH.mm.ss</maven.build.timestamp.format>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
</parent>
<dependencies>
<dependency>
<groupId>com.google.cloud.sql</groupId>
<artifactId>postgres-socket-factory</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.zkoss.zkspringboot</groupId>
<artifactId>zkspringboot-autoconfig</artifactId>
<version>${zkspringboot.version}</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zkbind</artifactId>
<version>${zk.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zkplus</artifactId>
<version>${zk.version}</version>
</dependency>
<dependency>
<groupId>org.zkoss.zk</groupId>
<artifactId>zul</artifactId>
<version>${zk.version}</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- for persistent sessions -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-jdbc</artifactId>
</dependency>
</dependencies>
Any help to succeed implementing the Spring Session store with ZK is welcome !
I found that this error is thrown after the ViewModel is initialized, i mean after the afterCompose of the view model is finished, so just before displaying the page, probably when Spring tries to store the Session data in the Database.
This is a "org.zkoss.bind.BindComposer" Object that fails to serialize any idea why ?
Please call System.setProperty("sun.io.serialization.extendedDebugInfo", "true");
which will print details debugging information about which member field is not serializable.
Here is the complete log :
2022-01-05 12:45:20.410 ERROR 27596 --- [nio-8443-exec-4] org.zkoss.io.serializable : Unable to serialize entry: $composer=org.zkoss.bind.BindComposer@38cc879f
2022-01-05 12:45:20.508 ERROR 27596 --- [nio-8443-exec-4] o.a.c.c.C.[.[.[/V2].[auEngine] : Servlet.service() for servlet [auEngine] threw exception
org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.Object] to type [byte[]] for value 'org.zkoss.zk.ui.http.SerializableSession@7f4fb979'; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor
- field (class "org.springframework.aop.support.AbstractGenericPointcutAdvisor", name: "advice", type: "interface org.aopalliance.aop.Advice")
- object (class "org.springframework.aop.support.DefaultPointcutAdvisor", org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8])
- custom writeObject data (class "java.util.ArrayList")
- object (class "java.util.ArrayList", [org.springframework.aop.interceptor.ExposeInvocationInterceptor.ADVISOR, org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.dao.support.PersistenceExceptionTranslationInterceptor@5f18770], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.transaction.interceptor.TransactionInterceptor@6aa74b32], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor@64eec21d], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor@6ec1e261], org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor@18709cb2])
- field (class "org.springframework.aop.framework.AdvisedSupport", name: "advisors", type: "interface java.util.List")
- object (class "org.springframework.aop.framework.ProxyFactory", org.springframework.aop.framework.ProxyFactory: 3 interfaces [com.vyv.hov2.repository.ConfRepository, org.springframework.data.repository.Repository, org.springframework.transaction.interceptor.TransactionalProxy]; 7 advisors [org.springframework.aop.interceptor.ExposeInvocationInterceptor.ADVISOR, org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.dao.support.PersistenceExceptionTranslationInterceptor@5f18770], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.transaction.interceptor.TransactionInterceptor@6aa74b32], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor@64eec21d], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor@6ec1e261], org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor@18709cb2]; targetSource [SingletonTargetSource for target object [com.vyv.hov2.repository.CustomRepositoryImpl@776682b]]; proxyTargetClass=false; optimize=false; opaque=false; exposeProxy=false; frozen=false)
- field (class "org.springframework.aop.framework.JdkDynamicAopProxy", name: "advised", type: "class org.springframework.aop.framework.AdvisedSupport")
- object (class "org.springframework.aop.framework.JdkDynamicAopProxy", org.springframework.aop.framework.JdkDynamicAopProxy@88477f8a)
- field (class "java.lang.reflect.Proxy", name: "h", type: "interface java.lang.reflect.InvocationHandler")
- object (class "com.sun.proxy.$Proxy170", com.vyv.hov2.repository.CustomRepositoryImpl@776682b)
- field (class "com.vyv.hov2.business.impl.ConfBusinessImpl", name: "confRepository", type: "interface com.vyv.hov2.repository.ConfRepository")
- object (class "com.vyv.hov2.business.impl.ConfBusinessImpl", com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f)
- field (class "org.springframework.aop.target.SingletonTargetSource", name: "target", type: "class java.lang.Object")
- object (class "org.springframework.aop.target.SingletonTargetSource", SingletonTargetSource for target object [com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f])
- field (class "org.springframework.aop.framework.AdvisedSupport", name: "targetSource", type: "interface org.springframework.aop.TargetSource")
- object (class "org.springframework.aop.framework.ProxyFactory", org.springframework.aop.framework.ProxyFactory: 0 interfaces []; 1 advisors [org.springframework.transaction.interceptor.BeanFactoryTransactionAttributeSourceAdvisor: advice org.springframework.transaction.interceptor.TransactionInterceptor@4f64d9cb]; targetSource [SingletonTargetSource for target object [com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f]]; proxyTargetClass=true; optimize=false; opaque=false; exposeProxy=false; frozen=false)
- field (class "org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor", name: "advised", type: "class org.springframework.aop.framework.AdvisedSupport")
- object (class "org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor", org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor@2b88fa68)
- field (class "com.vyv.hov2.business.impl.ConfBusinessImpl$$EnhancerBySpringCGLIB$$1da6c3fa", name: "CGLIB$CALLBACK_0", type: "interface org.springframework.cglib.proxy.MethodInterceptor")
- object (class "com.vyv.hov2.business.impl.ConfBusinessImpl$$EnhancerBySpringCGLIB$$1da6c3fa", com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f)
- field (class "com.vyv.hov2.viewModel.LoginViewModel", name: "confB", type: "interface com.vyv.hov2.business.ConfBusiness")
- object (class "com.vyv.hov2.viewModel.LoginViewModel", com.vyv.hov2.viewModel.LoginViewModel@15d2453)
- field (class "org.zkoss.bind.BindComposer", name: "_viewModel", type: "class java.lang.Object")
- object (class "org.zkoss.bind.BindComposer", org.zkoss.bind.BindComposer@38cc879f)
- custom writeObject data (class "org.zkoss.zk.ui.AbstractComponent")
- object (class "org.zkoss.zul.Window", <Window yH5Q0#win>)
- custom writeObject data (class "org.zkoss.zk.ui.AbstractPage")
- object (class "org.zkoss.zk.ui.impl.PageImpl", [Page yH5Q_])
- custom writeObject data (class "java.util.LinkedList")
- object (class "java.util.LinkedList", [[Page yH5Q_]])
- field (class "org.zkoss.zk.ui.impl.DesktopImpl", name: "_pages", type: "interface java.util.List")
- custom writeObject data (class "org.zkoss.zk.ui.impl.DesktopImpl")
- object (class "org.zkoss.zk.ui.impl.DesktopImpl", [Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul])
- field (class "org.zkoss.util.CacheMap$Value", name: "value", type: "class java.lang.Object")
- object (class "org.zkoss.util.CacheMap$Value", ([Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]@1641404719684))
- custom writeObject data (class "java.util.HashMap")
- object (class "java.util.LinkedHashMap", {z_Jbfu8exW9haA_LuuwzUJCQ=([Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]@1641404719684)})
- field (class "org.zkoss.util.CacheMap", name: "_map", type: "interface java.util.Map")
- custom writeObject data (class "org.zkoss.util.CacheMap")
- object (class "org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache", {z_Jbfu8exW9haA_LuuwzUJCQ=[Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]})
- field (class "org.zkoss.zk.ui.impl.SimpleDesktopCache", name: "_desktops", type: "class org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache")
- object (class "org.zkoss.zk.ui.impl.SimpleDesktopCache", org.zkoss.zk.ui.impl.SimpleDesktopCache@8570f71)
- custom writeObject data (class "org.zkoss.zk.ui.http.SerializableSession")
- root object (class "org.zkoss.zk.ui.http.SerializableSession", org.zkoss.zk.ui.http.SerializableSession@7f4fb979)
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:47)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository.serialize(JdbcIndexedSessionRepository.java:623)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository.access$400(JdbcIndexedSessionRepository.java:133)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository$1.setValues(JdbcIndexedSessionRepository.java:487)
at org.springframework.jdbc.core.JdbcTemplate.lambda$batchUpdate$4(JdbcTemplate.java:1042)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:651)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:691)
at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:1034)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository.insertSessionAttributes(JdbcIndexedSessionRepository.java:479)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository.access$1200(JdbcIndexedSessionRepository.java:133)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository$JdbcSession.lambda$save$5(JdbcIndexedSessionRepository.java:831)
at org.springframework.transaction.support.TransactionOperations.lambda$executeWithoutResult$0(TransactionOperations.java:68)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at org.springframework.transaction.support.TransactionOperations.executeWithoutResult(TransactionOperations.java:67)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository$JdbcSession.save(JdbcIndexedSessionRepository.java:816)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository$JdbcSession.access$200(JdbcIndexedSessionRepository.java:665)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository.save(JdbcIndexedSessionRepository.java:422)
at org.springframework.session.jdbc.JdbcIndexedSessionRepository.save(JdbcIndexedSessionRepository.java:133)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.commitSession(SessionRepositoryFilter.java:226)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper.access$100(SessionRepositoryFilter.java:193)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryResponseWrapper.onResponseCommitted(SessionRepositoryFilter.java:180)
at org.springframework.session.web.http.OnCommittedResponseWrapper.doOnResponseCommitted(OnCommittedResponseWrapper.java:227)
at org.springframework.session.web.http.OnCommittedResponseWrapper.checkContentLength(OnCommittedResponseWrapper.java:217)
at org.springframework.session.web.http.OnCommittedResponseWrapper.trackContentLength(OnCommittedResponseWrapper.java:179)
at org.springframework.session.web.http.OnCommittedResponseWrapper.access$1100(OnCommittedResponseWrapper.java:35)
at org.springframework.session.web.http.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:617)
at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:632)
at org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.write(OnCommittedResponseWrapper.java:632)
at org.zkoss.zk.ui.http.ZumlExtendlet.process(ZumlExtendlet.java:161)
at org.zkoss.zk.ui.http.ZumlExtendlet.service(ZumlExtendlet.java:115)
at org.zkoss.web.util.resource.ClassWebResource.web0(ClassWebResource.java:615)
at org.zkoss.web.util.resource.ClassWebResource.web(ClassWebResource.java:602)
at org.zkoss.web.util.resource.ClassWebResource.service(ClassWebResource.java:282)
at org.zkoss.zk.au.http.DHtmlResourceServlet.doGet0(DHtmlResourceServlet.java:117)
at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:710)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:457)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.springframework.session.web.http.SessionRepositoryFilter$SessionRepositoryRequestWrapper$SessionCommittingRequestDispatcher.forward(SessionRepositoryFilter.java:412)
at org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequestDispatcher.forward(HeaderWriterFilter.java:171)
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:171)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1396)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1141)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1080)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:133)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:147)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:133)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:142)
at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:82)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:764)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor
- field (class "org.springframework.aop.support.AbstractGenericPointcutAdvisor", name: "advice", type: "interface org.aopalliance.aop.Advice")
- object (class "org.springframework.aop.support.DefaultPointcutAdvisor", org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8])
- custom writeObject data (class "java.util.ArrayList")
- object (class "java.util.ArrayList", [org.springframework.aop.interceptor.ExposeInvocationInterceptor.ADVISOR, org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.dao.support.PersistenceExceptionTranslationInterceptor@5f18770], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.transaction.interceptor.TransactionInterceptor@6aa74b32], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor@64eec21d], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor@6ec1e261], org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor@18709cb2])
- field (class "org.springframework.aop.framework.AdvisedSupport", name: "advisors", type: "interface java.util.List")
- object (class "org.springframework.aop.framework.ProxyFactory", org.springframework.aop.framework.ProxyFactory: 3 interfaces [com.vyv.hov2.repository.ConfRepository, org.springframework.data.repository.Repository, org.springframework.transaction.interceptor.TransactionalProxy]; 7 advisors [org.springframework.aop.interceptor.ExposeInvocationInterceptor.ADVISOR, org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.dao.support.PersistenceExceptionTranslationInterceptor@5f18770], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.transaction.interceptor.TransactionInterceptor@6aa74b32], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor@64eec21d], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor@6ec1e261], org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor@18709cb2]; targetSource [SingletonTargetSource for target object [com.vyv.hov2.repository.CustomRepositoryImpl@776682b]]; proxyTargetClass=false; optimize=false; opaque=false; exposeProxy=false; frozen=false)
- field (class "org.springframework.aop.framework.JdkDynamicAopProxy", name: "advised", type: "class org.springframework.aop.framework.AdvisedSupport")
- object (class "org.springframework.aop.framework.JdkDynamicAopProxy", org.springframework.aop.framework.JdkDynamicAopProxy@88477f8a)
- field (class "java.lang.reflect.Proxy", name: "h", type: "interface java.lang.reflect.InvocationHandler")
- object (class "com.sun.proxy.$Proxy170", com.vyv.hov2.repository.CustomRepositoryImpl@776682b)
- field (class "com.vyv.hov2.business.impl.ConfBusinessImpl", name: "confRepository", type: "interface com.vyv.hov2.repository.ConfRepository")
- object (class "com.vyv.hov2.business.impl.ConfBusinessImpl", com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f)
- field (class "org.springframework.aop.target.SingletonTargetSource", name: "target", type: "class java.lang.Object")
- object (class "org.springframework.aop.target.SingletonTargetSource", SingletonTargetSource for target object [com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f])
- field (class "org.springframework.aop.framework.AdvisedSupport", name: "targetSource", type: "interface org.springframework.aop.TargetSource")
- object (class "org.springframework.aop.framework.ProxyFactory", org.springframework.aop.framework.ProxyFactory: 0 interfaces []; 1 advisors [org.springframework.transaction.interceptor.BeanFactoryTransactionAttributeSourceAdvisor: advice org.springframework.transaction.interceptor.TransactionInterceptor@4f64d9cb]; targetSource [SingletonTargetSource for target object [com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f]]; proxyTargetClass=true; optimize=false; opaque=false; exposeProxy=false; frozen=false)
- field (class "org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor", name: "advised", type: "class org.springframework.aop.framework.AdvisedSupport")
- object (class "org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor", org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor@2b88fa68)
- field (class "com.vyv.hov2.business.impl.ConfBusinessImpl$$EnhancerBySpringCGLIB$$1da6c3fa", name: "CGLIB$CALLBACK_0", type: "interface org.springframework.cglib.proxy.MethodInterceptor")
- object (class "com.vyv.hov2.business.impl.ConfBusinessImpl$$EnhancerBySpringCGLIB$$1da6c3fa", com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f)
- field (class "com.vyv.hov2.viewModel.LoginViewModel", name: "confB", type: "interface com.vyv.hov2.business.ConfBusiness")
- object (class "com.vyv.hov2.viewModel.LoginViewModel", com.vyv.hov2.viewModel.LoginViewModel@15d2453)
- field (class "org.zkoss.bind.BindComposer", name: "_viewModel", type: "class java.lang.Object")
- object (class "org.zkoss.bind.BindComposer", org.zkoss.bind.BindComposer@38cc879f)
- custom writeObject data (class "org.zkoss.zk.ui.AbstractComponent")
- object (class "org.zkoss.zul.Window", <Window yH5Q0#win>)
- custom writeObject data (class "org.zkoss.zk.ui.AbstractPage")
- object (class "org.zkoss.zk.ui.impl.PageImpl", [Page yH5Q_])
- custom writeObject data (class "java.util.LinkedList")
- object (class "java.util.LinkedList", [[Page yH5Q_]])
- field (class "org.zkoss.zk.ui.impl.DesktopImpl", name: "_pages", type: "interface java.util.List")
- custom writeObject data (class "org.zkoss.zk.ui.impl.DesktopImpl")
- object (class "org.zkoss.zk.ui.impl.DesktopImpl", [Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul])
- field (class "org.zkoss.util.CacheMap$Value", name: "value", type: "class java.lang.Object")
- object (class "org.zkoss.util.CacheMap$Value", ([Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]@1641404719684))
- custom writeObject data (class "java.util.HashMap")
- object (class "java.util.LinkedHashMap", {z_Jbfu8exW9haA_LuuwzUJCQ=([Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]@1641404719684)})
- field (class "org.zkoss.util.CacheMap", name: "_map", type: "interface java.util.Map")
- custom writeObject data (class "org.zkoss.util.CacheMap")
- object (class "org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache", {z_Jbfu8exW9haA_LuuwzUJCQ=[Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]})
- field (class "org.zkoss.zk.ui.impl.SimpleDesktopCache", name: "_desktops", type: "class org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache")
- object (class "org.zkoss.zk.ui.impl.SimpleDesktopCache", org.zkoss.zk.ui.impl.SimpleDesktopCache@8570f71)
- custom writeObject data (class "org.zkoss.zk.ui.http.SerializableSession")
- root object (class "org.zkoss.zk.ui.http.SerializableSession", org.zkoss.zk.ui.http.SerializableSession@7f4fb979)
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:64)
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:33)
at org.springframework.core.convert.support.GenericConversionService$ConverterAdapter.convert(GenericConversionService.java:386)
at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:41)
... 155 common frames omitted
Caused by: java.io.NotSerializableException: org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor
- field (class "org.springframework.aop.support.AbstractGenericPointcutAdvisor", name: "advice", type: "interface org.aopalliance.aop.Advice")
- object (class "org.springframework.aop.support.DefaultPointcutAdvisor", org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8])
- custom writeObject data (class "java.util.ArrayList")
- object (class "java.util.ArrayList", [org.springframework.aop.interceptor.ExposeInvocationInterceptor.ADVISOR, org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.dao.support.PersistenceExceptionTranslationInterceptor@5f18770], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.transaction.interceptor.TransactionInterceptor@6aa74b32], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor@64eec21d], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor@6ec1e261], org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor@18709cb2])
- field (class "org.springframework.aop.framework.AdvisedSupport", name: "advisors", type: "interface java.util.List")
- object (class "org.springframework.aop.framework.ProxyFactory", org.springframework.aop.framework.ProxyFactory: 3 interfaces [com.vyv.hov2.repository.ConfRepository, org.springframework.data.repository.Repository, org.springframework.transaction.interceptor.TransactionalProxy]; 7 advisors [org.springframework.aop.interceptor.ExposeInvocationInterceptor.ADVISOR, org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor@586a49e8], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.dao.support.PersistenceExceptionTranslationInterceptor@5f18770], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.transaction.interceptor.TransactionInterceptor@6aa74b32], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor@64eec21d], org.springframework.aop.support.DefaultPointcutAdvisor: pointcut [Pointcut.TRUE]; advice [org.springframework.data.repository.core.support.RepositoryFactorySupport$ImplementationMethodExecutionInterceptor@6ec1e261], org.springframework.dao.annotation.PersistenceExceptionTranslationAdvisor@18709cb2]; targetSource [SingletonTargetSource for target object [com.vyv.hov2.repository.CustomRepositoryImpl@776682b]]; proxyTargetClass=false; optimize=false; opaque=false; exposeProxy=false; frozen=false)
- field (class "org.springframework.aop.framework.JdkDynamicAopProxy", name: "advised", type: "class org.springframework.aop.framework.AdvisedSupport")
- object (class "org.springframework.aop.framework.JdkDynamicAopProxy", org.springframework.aop.framework.JdkDynamicAopProxy@88477f8a)
- field (class "java.lang.reflect.Proxy", name: "h", type: "interface java.lang.reflect.InvocationHandler")
- object (class "com.sun.proxy.$Proxy170", com.vyv.hov2.repository.CustomRepositoryImpl@776682b)
- field (class "com.vyv.hov2.business.impl.ConfBusinessImpl", name: "confRepository", type: "interface com.vyv.hov2.repository.ConfRepository")
- object (class "com.vyv.hov2.business.impl.ConfBusinessImpl", com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f)
- field (class "org.springframework.aop.target.SingletonTargetSource", name: "target", type: "class java.lang.Object")
- object (class "org.springframework.aop.target.SingletonTargetSource", SingletonTargetSource for target object [com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f])
- field (class "org.springframework.aop.framework.AdvisedSupport", name: "targetSource", type: "interface org.springframework.aop.TargetSource")
- object (class "org.springframework.aop.framework.ProxyFactory", org.springframework.aop.framework.ProxyFactory: 0 interfaces []; 1 advisors [org.springframework.transaction.interceptor.BeanFactoryTransactionAttributeSourceAdvisor: advice org.springframework.transaction.interceptor.TransactionInterceptor@4f64d9cb]; targetSource [SingletonTargetSource for target object [com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f]]; proxyTargetClass=true; optimize=false; opaque=false; exposeProxy=false; frozen=false)
- field (class "org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor", name: "advised", type: "class org.springframework.aop.framework.AdvisedSupport")
- object (class "org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor", org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor@2b88fa68)
- field (class "com.vyv.hov2.business.impl.ConfBusinessImpl$$EnhancerBySpringCGLIB$$1da6c3fa", name: "CGLIB$CALLBACK_0", type: "interface org.springframework.cglib.proxy.MethodInterceptor")
- object (class "com.vyv.hov2.business.impl.ConfBusinessImpl$$EnhancerBySpringCGLIB$$1da6c3fa", com.vyv.hov2.business.impl.ConfBusinessImpl@6f377b1f)
- field (class "com.vyv.hov2.viewModel.LoginViewModel", name: "confB", type: "interface com.vyv.hov2.business.ConfBusiness")
- object (class "com.vyv.hov2.viewModel.LoginViewModel", com.vyv.hov2.viewModel.LoginViewModel@15d2453)
- field (class "org.zkoss.bind.BindComposer", name: "_viewModel", type: "class java.lang.Object")
- object (class "org.zkoss.bind.BindComposer", org.zkoss.bind.BindComposer@38cc879f)
- custom writeObject data (class "org.zkoss.zk.ui.AbstractComponent")
- object (class "org.zkoss.zul.Window", <Window yH5Q0#win>)
- custom writeObject data (class "org.zkoss.zk.ui.AbstractPage")
- object (class "org.zkoss.zk.ui.impl.PageImpl", [Page yH5Q_])
- custom writeObject data (class "java.util.LinkedList")
- object (class "java.util.LinkedList", [[Page yH5Q_]])
- field (class "org.zkoss.zk.ui.impl.DesktopImpl", name: "_pages", type: "interface java.util.List")
- custom writeObject data (class "org.zkoss.zk.ui.impl.DesktopImpl")
- object (class "org.zkoss.zk.ui.impl.DesktopImpl", [Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul])
- field (class "org.zkoss.util.CacheMap$Value", name: "value", type: "class java.lang.Object")
- object (class "org.zkoss.util.CacheMap$Value", ([Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]@1641404719684))
- custom writeObject data (class "java.util.HashMap")
- object (class "java.util.LinkedHashMap", {z_Jbfu8exW9haA_LuuwzUJCQ=([Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]@1641404719684)})
- field (class "org.zkoss.util.CacheMap", name: "_map", type: "interface java.util.Map")
- custom writeObject data (class "org.zkoss.util.CacheMap")
- object (class "org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache", {z_Jbfu8exW9haA_LuuwzUJCQ=[Desktop z_Jbfu8exW9haA_LuuwzUJCQ:/zul/login.zul]})
- field (class "org.zkoss.zk.ui.impl.SimpleDesktopCache", name: "_desktops", type: "class org.zkoss.zk.ui.impl.SimpleDesktopCache$Cache")
- object (class "org.zkoss.zk.ui.impl.SimpleDesktopCache", org.zkoss.zk.ui.impl.SimpleDesktopCache@8570f71)
- custom writeObject data (class "org.zkoss.zk.ui.http.SerializableSession")
- root object (class "org.zkoss.zk.ui.http.SerializableSession", org.zkoss.zk.ui.http.SerializableSession@7f4fb979)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at java.base/java.util.ArrayList.writeObject(ArrayList.java:897)
at java.base/jdk.internal.reflect.GeneratedMethodAccessor140.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at org.zkoss.io.Serializables.smartWrite(Serializables.java:62)
at org.zkoss.zk.ui.AbstractComponent.writeObject(AbstractComponent.java:3465)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at org.zkoss.zk.ui.AbstractPage.writeObject(AbstractPage.java:246)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at java.base/java.util.LinkedList.writeObject(LinkedList.java:1135)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:442)
at org.zkoss.zk.ui.impl.DesktopImpl.writeObject(DesktopImpl.java:1214)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at java.base/java.util.LinkedHashMap.internalWriteEntries(LinkedHashMap.java:333)
at java.base/java.util.HashMap.writeObject(HashMap.java:1411)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:442)
at org.zkoss.util.CacheMap.writeObject(CacheMap.java:633)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1553)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1510)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at org.zkoss.zk.ui.http.SimpleSession.writeThis(SimpleSession.java:454)
at org.zkoss.zk.ui.http.SerializableSession.writeObject(SerializableSession.java:71)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1145)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1497)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1433)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1179)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:349)
at org.springframework.core.serializer.DefaultSerializer.serialize(DefaultSerializer.java:46)
at org.springframework.core.serializer.Serializer.serializeToByteArray(Serializer.java:56)
at org.springframework.core.serializer.support.SerializingConverter.convert(SerializingConverter.java:60)
... 158 common frames omitted
If you check the exception, the last field it printed is the root cause of NotSerializableException
:
- field (class "org.springframework.aop.support.AbstractGenericPointcutAdvisor", name: "advice", type: "interface org.aopalliance.aop.Advice")
You can trace the object path from the root object to know how your ViewModel references AbstractGenericPointcutAdvisor
.
- root object (class "org.zkoss.zk.ui.http.SerializableSession", org.zkoss.zk.ui.http.SerializableSession@7f4fb979)
Hence, I think the exception is not caused by ZK.
Asked: 2022-01-05 07:14:38 +0800
Seen: 10 times
Last updated: Jan 12 '22
bug with intboxes on mobile devices
zk keikai-how to add custom button/label to formulabar?
zk-keikai- update multiple cells parallel at same time asynchronously
zk-keikai-How to auto fit column width based on text
zk-keikai-ClipboardPateEvent-called twice
Reference a spring bean from VariableResolver
Hi, have you solved this problem?
AntonF ( 2023-02-27 19:26:59 +0800 )edit