java - 识别非集群环境中的序列化问题

标签 java serialization cluster-computing marshalling session-replication

我有一个 JSF-Spring 集成应用程序。该应用程序在我的非集群环境中运行良好。当在集群[wildfly 8.0.0]环境中部署应用程序时,我遇到了有关序列化的不同问题。其中一些示例是 DTO 类未实现可序列化,尝试序列化我不想序列化的 Logger 类等。

部署在集群环境中的应用程序在我的 web.xml 中具有 < distributable/> 标记,因此它会尝试跨节点进行 session 复制,但在不可序列化的情况下会失败。

所有开发人员都可能不遵循这些行中的准则,从而导致其中一些情况。

所以我的问题是,在我的测试服务器[wildfly 8.0.0](非集群环境)中查看所有这些序列化问题的最佳选择是什么。

添加一个异常(exception)详细信息以更加清晰:

Caused by: java.lang.RuntimeException: Failure to marshal argument(s)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:333)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:352)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:167)
... 76 more
Caused by: org.infinispan.commons.marshall.NotSerializableException: com.org.account.service.AccountExpServiceImpl
Caused by: an exception which occurred:
in field accountExpService
in field m
in object java.util.HashMap@85b67fbe
in object org.jboss.as.clustering.marshalling.SimpleMarshalledValue@85b67fbe
in object org.infinispan.commands.write.ReplaceCommand@ec0c12ad
in object org.infinispan.commands.tx.PrepareCommand@ce32eb5a

最佳答案

我们使用以下实用程序来检查 Infinispan 是否可以序列化给定对象:

org.infinispan.manager.DefaultCacheManager.getCacheManagerConfiguration().serialization().marshaller().isMarshallable(objectToCheck);

这实际上是我们测试的一部分。

关于java - 识别非集群环境中的序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210774/

相关文章:

java - 对象数组只包含最后一个

java - Swagger Spring-MVC/SwaggerUI 身份验证

java - 尝试将字符串 append 到自定义 StringBuilder 时出现重复且不正确的结果

c# - 关于序列化、反序列化和保存图像的代码的反馈

javascript - 大流量生产环境集群Node JS

erlang - emq mqtt 集群 : Client Session management

Java:每台机器上每次调用的反射都相同吗?

java - ServiceLoader 中的 Iterable 对象是有序的吗?

c# - 使用 DataContract 类的 BinaryFormatter 有问题吗?

design-patterns - 池和集群的区别