We have a project which was migrated from JBoss 4 to Wildfly 10. Under JBoss 4, we had multiple caches which were implemented as TreeCaches.
In our current project, those who did the migration defined these caches in the inet-standalone-full.xml, for example:
<cache-container name="cancache" default-cache="can_last_sent">
<local-cache name="can_last_sent" jndi-name="java:/atms/cache/can/lastSent">
<string-keyed-jdbc-store data-source="AtmsDbData" dialect="MYSQL" passivation="false" preload="true" purge="false" shared="true">
<string-keyed-table prefix="cache">
<id-column type="NVARCHAR(256)"/>
<data-column name="value" type="BLOB"/>
</string-keyed-table>
</string-keyed-jdbc-store>
</local-cache>
</cache-container>
We have a class which formerly used to be used as a key, and implements Serializable. But when we try to use this class as a key, we are getting the error:
2017-06-06 13:59:42,134 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (Thread-28 (ActiveMQ-client-global-threads-808130985)) ISPN000136: Error executing command GetKeyValueCommand, writing keys []: org.infinispan.persistence.keymappers.UnsupportedKeyTypeException: Unsupported key type: 'com.networks.can.jpa.SentKey' on key: SentKey{alertId=22292, alertCategory='CMS', alertDesc='Comm Failure Detected', notifiedVia=email, address='blah@blah.com', alertItem='Comm Failure Detected', hashCode='976212382'}
Is there some configuration we are missing which adds our object as a supported key type?
A <string-keyed-jdbc-store/> can only store cache entries whose keys are of type java.lang.String.
Change this to <binary-keyed-jdbc-store/> and you should be good to go.