我有一个多模块的Spring Boot项目。一个模块,'实体'包含Hibernate配置,包括Hazelcast L2缓存配置。这是一个.jar(不是Spring Boot)
另一个模块是' 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>
&#39; hazelcast-hibernate5&#39;对hazelcast 3.5.5有一个管理依赖,我将其排除在外。
当我运行&#39;网络&#39;应用程序(Spring Boot),我得到以下错误,该错误源自&#39;实体&#39;配置文件(声明L2缓存)。我不使用XML,这是Java配置。
引起:java.lang.ClassNotFoundException:com.hazelcast.internal.serialization.DataSerializerHook
在eclipse中我搜索&#34;输入&#34; &安培;可以找到DataSerializerHook,它是&#39;实体的依赖关系。 ......正如所料。
我从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。现在已经解决了。
我在这里缺少什么?
答案 0 :(得分:0)
hazelcast-hibernate5
版本1.2取决于Hazelcast版本3.7,可以看到here您不应该在Maven配置中使用任何排除项,以便能够将其与Hazelcast 3.7一起使用。查找Maven配置中的依赖项,这些依赖项可能对先前的Hazelcast版本具有传递依赖性。
您可以使用Maven dependency plugin或IDE的内置功能来显示传递的Maven依赖项。