W projekcie używamy hazelcast 5.4.0 jako klucz i wartość są to klasy implementujące interfejs Serializable. Klasy te sa wrzucone w osobny project zwany "model".
Projekt składa się z:
- Wspomnianego wyżej modelu
- Aplikacja server hazelcast - posiada zależność do "model"
- Aplikacja restowa która służy do odczytu z hazelcasta - posiada zależność do "model"
- Aplikacja zapisująca do hazelcasta - posiada zależność do "model"
Problem polega na tym ze dane zapisane do hazelcasta przez aplikacje nr 4. nie można ich odczytać przez aplikacje nr 3. Podczas debugowania zrobiłem test ze sięgnąłem do hazelcast map.keySet do obiektu klucza i porównałem obiekty którym próbuje wyciągać dane a z tym który obecnie siedzi w mapie i obie metody equals i hasCode zwracają true...
Ale bezpośrednie wywołanie na mapie hazelcasta metody get zwraca null...
Z tego co udało mi się przeanalizować do tej pory to przy serializacji klucza te dwie aplikacje nr 3 oraz nr 4 ich klucz po serializacji ma inna długość tablic bajtow (rożnią sie o 5 bajtów).
Odczyt jest tylko możliwy z aplikacji która wpisała te dane (zgodność długości bajtów serializowanej klasy klucza)
Nie wiem co jest przyczyną bo obie aplikacje odwołują się do tego samego builda modelu, używają tej samej Javy (dostawcy jak i wersji), tej samej wersji hazelcasta (server jest jeden zewnętrzny) bez dodatkowych konfiguracji, obie aplikacje przelatują przy serializacji przez ten sam domyślny serializer Javy którego używa hazelcast.
Kodu aplikacji niestety nie mogę tutaj umieścić.
Java 17.0.9 Temurin