我們正在編寫Java 8 + Play 2應用程序。Gemfire 8.1 - 異常 - ServerOperationException - SerializationException - 一個ClassNotFoundException
我們是在從遷移6的GemFire到的GemFire 8
下面是我的GemFire客戶cache.xml文件的過程。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE client-cache PUBLIC
"-//GemStone Systems, Inc.//GemFire Declarative Caching 6.6//EN"
"http://www.gemstone.com/dtd/cache6_6.dtd">
<client-cache>
<pool name="gemfire_qa_instance" subscription-enabled="true">
<locator host="somehost1" port="42101" />
<locator host="somehost2" port="42101" />
<locator host="somehost3" port="42101" />
<locator host="somehost4" port="42101" />
</pool>
<region name="customer" refid="CACHING_PROXY_HEAP_LRU">
<region-attributes>
<cache-listener>
<class-name>ser.cac.CustomerListener</class-name>
</cache-listener>
</region-attributes>
</region>
<region name="s2o_customer" refid="CACHING_PROXY_HEAP_LRU">
<region-attributes>
<cache-listener>
<class-name>ser.cac.CustomerListener</class-name>
</cache-listener>
</region-attributes>
</region>
<region name="ten_minute_ttl" refid="CACHING_PROXY_HEAP_LRU" />
<region name="five_minute_ttl" refid="CACHING_PROXY_HEAP_LRU" />
<region name="six_hour_idle" refid="CACHING_PROXY_HEAP_LRU"/>
<region name="ten_minute_idle" refid="CACHING_PROXY_HEAP_LRU" />
<resource-manager critical-heap-percentage="99" eviction-heap-percentage="90" />
</client-cache>
有了這個配置,我有一些gemfire相關的工作,除了我在日誌中收到下面的異常。
2017-07-17 06:15:03,718 WARN application - status="0" action="CACHE_PUT_ALL" event_description="failure on cache 'region 'ten_minute_ttl.split_b37_PID0000_document_author'' for key '[757227, CMS_757227]' with message: com.gemstone.gemfire.SerializationException: A ClassNotFoundException was thrown while trying to deserialize cached value." appId="MOBSVC_P2" request_id="5d313d75-e4ec-406b-a842-0a3ff5d9f1a4" version="1.0" locale="fr-CA" productId="JOB" level="WARN" event_status="success" event_severity="info" exception=com.gemstone.gemfire.cache.client.ServerOperationException: com.gemstone.gemfire.SerializationException: A ClassNotFoundException was thrown while trying to deserialize cached value.
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:560)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:657)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:495)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.executeOnServer(OpExecutorImpl.java:336)
at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.executeOn(OpExecutorImpl.java:303)
at com.gemstone.gemfire.cache.client.internal.PoolImpl.executeOn(PoolImpl.java:659)
at com.gemstone.gemfire.cache.client.internal.SingleHopOperationCallable.call(SingleHopOperationCallable.java:45)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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: com.gemstone.gemfire.SerializationException: A ClassNotFoundException was thrown while trying to deserialize cached value.
at com.gemstone.gemfire.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:1561)
at com.gemstone.gemfire.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:1546)
at com.gemstone.gemfire.internal.cache.VMCachedDeserializable.getDeserializedForReading(VMCachedDeserializable.java:153)
at com.gemstone.gemfire.cache.operations.PutAllOperationContext$UpdateOnlyMap.exportValue(PutAllOperationContext.java:171)
at com.gemstone.gemfire.cache.operations.PutAllOperationContext$UpdateOnlyMap.access$300(PutAllOperationContext.java:144)
at com.gemstone.gemfire.cache.operations.PutAllOperationContext$UpdateOnlyMap$ExportableEntry.getValue(PutAllOperationContext.java:256)
at com.gemstone.gemfire.internal.cache.LocalRegion.verifyPutAllMap(LocalRegion.java:9695)
at com.gemstone.gemfire.internal.cache.LocalRegion.basicPutAll(LocalRegion.java:9842)
at com.gemstone.gemfire.internal.cache.LocalRegion.basicBridgePutAll(LocalRegion.java:9742)
at com.gemstone.gemfire.internal.cache.tier.sockets.command.PutAll.cmdExecute(PutAll.java:206)
at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:182)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:789)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:920)
at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1128)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at com.gemstone.gemfire.internal.cache.tier.sockets.AcceptorImpl$1$1.run(AcceptorImpl.java:577)
... 1 more
Caused by: java.lang.ClassNotFoundException: models.article.Author
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:344)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626)
at com.gemstone.gemfire.internal.InternalDataSerializer$DSObjectInputStream.resolveClass(InternalDataSerializer.java:3563)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
at com.gemstone.gemfire.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:2966)
at com.gemstone.gemfire.DataSerializer.readObject(DataSerializer.java:3210)
at com.gemstone.gemfire.internal.util.BlobHelper.deserializeBlob(BlobHelper.java:110)
at com.gemstone.gemfire.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:1554)
... 17 more
2017-07-17 06:15:03,729 INFO application - status="0" event_description="produced 2 of the remaining 1 Author(s)" appId="MOBSVC_P2" request_id="5d313d75-e4ec-406b-a842-0a3ff5d9f1a4" version="1.0" locale="fr-CA" productId="JOB" level="DEFAULT" event_status="success" event_severity="info"
現在下面是我想看看它是否工作來解決這個例外
- 改變了客戶cache.xml文件配置從CACHING_PROXY_HEAP_LRU到CACHING_PROXY甚至PROXY的事情。它不起作用,異常仍然存在
- 也嘗試在client-cache.xml文件中添加下面的東西,但它沒有奏效。我爲所有地區做過。
<region name="five_minute_ttl" refid="CACHING_PROXY_HEAP_LRU">
<region-attributes pool-name="gemfire_qa_instance">
<eviction-attributes>
<lru-heap-percentage action="local-destroy" />
</eviction-attributes>
</region-attributes>
</region>
除了這個之外,一切似乎是工作的罰款與客戶的GemFire 6.6.2連接到服務器的GemFire 8.1.0
我已將gemfire客戶端從6.6.2更新到8.1.0,並對client-cache.xml文件進行了更改,以使XML符合gemfire 8.1.0客戶端。以下是Gemfire 8.1.0客戶端的client-cache.xml文件。但錯誤仍然存在。
<?xml version="1.0"?>
<client-cache xmlns="http://schema.pivotal.io/gemfire/cache" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache http://schema.pivotal.io/gemfire/cache/cache-8.1.xsd" version="8.1">
<pool name="gemfire_qa_instance" subscription-enabled="true">
<locator host="somehost1" port="42101" />
<locator host="somehost2" port="42101" />
<locator host="somehost3" port="42101" />
<locator host="somehost4" port="42101" />
</pool>
<region name="customer" refid="CACHING_PROXY_HEAP_LRU">
<region-attributes>
<cache-listener>
<class-name>ser.cac.CustomerListener</class-name>
</cache-listener>
</region-attributes>
</region>
<region name="s2o_customer" refid="CACHING_PROXY_HEAP_LRU">
<region-attributes>
<cache-listener>
<class-name>ser.cac.CustomerListener</class-name>
</cache-listener>
</region-attributes>
</region>
<region name="ten_minute_ttl" refid="CACHING_PROXY_HEAP_LRU" />
<region name="five_minute_ttl" refid="CACHING_PROXY_HEAP_LRU" />
<region name="six_hour_idle" refid="CACHING_PROXY_HEAP_LRU" />
<region name="ten_minute_idle" refid="CACHING_PROXY_HEAP_LRU" />
<resource-manager critical-heap-percentage="99" eviction-heap-percentage="90" />
</client-cache>
可以在這方面幫助的人?
任何人都可以幫忙看看這個嗎? – user3616964