However when doing a simple test case of serializing LocalDateTime from client to server I get the following error
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/indms] threw exception
java.io.IOException: java.lang.IllegalAccessException: Class org.granite.messaging.reflect.ConstructorInstantiator can not access a member of class java.time.Ser with modifiers "public"
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:136)
at org.granite.messaging.jmf.codec.std.impl.ObjectArrayCodecImpl.readObjectArray0(ObjectArrayCodecImpl.java:215)
at org.granite.messaging.jmf.codec.std.impl.ObjectArrayCodecImpl.decode(ObjectArrayCodecImpl.java:165)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.jmf.codec.std.impl.ObjectArrayCodecImpl.readObjectArray0(ObjectArrayCodecImpl.java:215)
at org.granite.messaging.jmf.codec.std.impl.ObjectArrayCodecImpl.decode(ObjectArrayCodecImpl.java:165)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.jmf.JMFDeserializer.readAndSetProperty(JMFDeserializer.java:336)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:241)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:235)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:235)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:226)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decode(ObjectCodecImpl.java:179)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.jmf.codec.std.impl.ObjectArrayCodecImpl.readObjectArray0(ObjectArrayCodecImpl.java:215)
at org.granite.messaging.jmf.codec.std.impl.ObjectArrayCodecImpl.decode(ObjectArrayCodecImpl.java:165)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.jmf.JMFDeserializer.readAndSetProperty(JMFDeserializer.java:336)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:241)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:226)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decode(ObjectCodecImpl.java:179)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.jmf.codec.std.impl.ArrayListCodecImpl.decode(ArrayListCodecImpl.java:84)
at org.granite.messaging.jmf.codec.std.impl.ArrayListCodecImpl.decode(ArrayListCodecImpl.java:40)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.jmf.JMFDeserializer.readAndSetProperty(JMFDeserializer.java:336)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:241)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decodeSerializable(ObjectCodecImpl.java:226)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decode(ObjectCodecImpl.java:179)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
at org.granite.messaging.webapp.AMFEndpoint.serviceJMFAMF(AMFEndpoint.java:147)
at org.granite.messaging.webapp.AMFEndpoint.service(AMFEndpoint.java:64)
at org.granite.spring.ServerFilter.handle(ServerFilter.java:331)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalAccessException: Class org.granite.messaging.reflect.ConstructorInstantiator can not access a member of class java.time.Ser with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:101)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:295)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:287)
at java.lang.reflect.Constructor.newInstance(Constructor.java:398)
at org.granite.messaging.reflect.ConstructorInstantiator.newInstance(ConstructorInstantiator.java:37)
at org.granite.messaging.reflect.ClassDescriptor.newInstance(ClassDescriptor.java:107)
at org.granite.messaging.jmf.codec.std.impl.ObjectCodecImpl.decode(ObjectCodecImpl.java:171)
at org.granite.messaging.jmf.JMFDeserializer.readObject(JMFDeserializer.java:130)
I am not using any custom Converters and I was expected granite to support java 8 dates automatically. Do I have to enable this feature?
I'm using JavaFX 8_u20 on client and Java 8_u20 on server in a tomcat 7 container.