我有一個多模塊的Spring Boot項目。一個模塊,'實體'包含Hibernate配置,包括Hazelcast L2緩存配置。這是一個.jar(不是Spring Boot)用於Hibernate拋出的Hazelcast L2緩存ClassNotFoundException
另一個模塊是'web',它依賴於'實體',但是一個啓動應用程序。
'實體' 具有以下依存關係:
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-hibernate5</artifactId>
<version>1.2</version>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast</artifactId>
<version>3.7.1</version>
'hazelcast-hibernate5' 對hazelcast 3.5.5有管理的依賴,我排除。
當我運行'web'應用程序(Spring Boot)時,我得到了來自'實體'配置文件(其中聲明L2緩存)的以下錯誤。我不使用XML,這是Java配置。
產生的原因:拋出java.lang.ClassNotFoundException:com.hazelcast.internal.serialization.DataSerializerHook
在Eclipse我搜索的「類型」 &可以找到DataSerializerHook這是「實體」的依賴......作爲預期。
我從hazelcast-hibernate5中排除hazelcast 3.5.5的原因是因爲3.5.5 DataSerializerHook在com.hazelcast.nio.serialization中。在hazelcast 3.7.1中它的com.hazelcast.internal.serialization。最初,我得到了這個classCastException b/c。這現在已經解決了。
我在這裏錯過了什麼?