Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Deserialization to type BaseMoney fails

Aperta
#498 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

@jenschude ci sta già lavorando.

Dal 5/10/2023.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug

Describe the bug
Querying price information of a product with the graphql-api results in deserialization errors:

Caused by: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve subtype of [simple type, class com.commercetools.graphql.api.types.BaseMoney]: missing type id property '__typename' (for POJO property 'value')

To Reproduce

public class Reproducer {

    public static void main(String[] args) {
        final ProjectApiRoot client = createApiClient();
        Logger logger = LoggerFactory.getLogger(Reproducer.class.getName());

        GraphQLResponse<ProductQueryResult> responseEntity =
                client
                        .graphql()
                        .query(GraphQL.products(q -> q.limit(8))
                                .projection(p -> p.total().results().id().masterData().current().masterVariant().prices().value().centAmount()))
                        .executeBlocking()
                        .getBody();
        responseEntity.getData().getResults().forEach(result -> {
            logger.info("Id: " + result.getId() + "Name: " + result.getMasterData().getCurrent().getName());
            logger.info("Id: " + result.getId() + "Name: " + result.getMasterData().getCurrent().getMasterVariant().getPrices());
        });
        client.close();
    }

    public static ProjectApiRoot createApiClient() {
        var projectApiRoot = ApiRootBuilder.of()
                .defaultClient(
                        ClientCredentials.of()
                                .withClientId("<CLIENT-ID>")
                                .withClientSecret("<SECRET")
                                .build(),
                        ServiceRegion.GCP_EUROPE_WEST1.getOAuthTokenUrl(),
                        ServiceRegion.GCP_EUROPE_WEST1.getApiUrl()
                )
                .build("<PROJECT-KEY>");

        return projectApiRoot;
    }
}

Expected behavior
Reproducer code should run and price information should be deserialized without an error.

Screenshots/Code snippet
Following error is thrown:
Caused by: com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve subtype of [simple type, class com.commercetools.graphql.api.types.BaseMoney]: missing type id property '__typename' (for POJO property 'value')

Stack information (please complete the following information):

  • Java: 17
  • SDK: 16.3.0

Additional context
NA

Lingua principale
Java
Stelle
48
Fork
21
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di commercetools/commercetools-sdk-java-v2

Tutte le issue di commercetools/commercetools-sdk-java-v2

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.