Code Monkey home page Code Monkey logo

Comments (11)

srinivasankavitha avatar srinivasankavitha commented on July 19, 2024

Can you try adding a typeMapping in your codegen config?

generateJava{
   typeMapping = ["MyGraphQLType": "com.mypackage.MyJavaType"]
}

from dgs-codegen.

umesh-kushwaha avatar umesh-kushwaha commented on July 19, 2024

thanks @srinivasankavitha its working fine. typeMapping=["Long":"java.lang.Long"]

But unit test cases dgsQueryExecutor.executeAndExtractJsonPath() throwing error

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dgsQueryExecutor' defined in com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration: Unsatisfied dependency expressed through method 'dgsQueryExecutor' parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'schema' defined in com.netflix.graphql.dgs.autoconfig.DgsAutoConfiguration: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [graphql.schema.GraphQLSchema]: Factory method 'schema' threw exception; nested exception is SchemaProblem{errors=[There is no scalar implementation for the named 'Long' scalar type]}

from dgs-codegen.

srinivasankavitha avatar srinivasankavitha commented on July 19, 2024

Can you try adding the scalar class to the list of test classes specified in @SpringBootTest like this:

@SpringBootTest(classes = {DgsAutoConfiguration.class, YourScalar.class,... })

from dgs-codegen.

umesh-kushwaha avatar umesh-kushwaha commented on July 19, 2024

I tried and getting error
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'long': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.lang.Long]: No default constructor found; nested exception is java.lang.NoSuchMethodException: java.lang.Long.<init>()

from dgs-codegen.

umesh-kushwaha avatar umesh-kushwaha commented on July 19, 2024

@srinivasankavitha thanks for looking into the issue. I resolved the issue by loading GraphQLRuntimeWiring class since that’s the one that register all the scalars. We don't need to load every scalar. GraphQLRuntimeWiring class will take care of loading all registered scalars.

@SpringBootTest(classes = {DgsAutoConfiguration.class, GraphQLRuntimeWiring.class,... })

from dgs-codegen.

richardcresswell avatar richardcresswell commented on July 19, 2024

I'm having this same issue with DateTime. I'm adding the scalar class to the list of @SpringBootTest classes. I don't see the GraphQLRuntimeWiring class to add. Any ideas?

java.lang.IllegalArgumentException: Cannot construct instance of java.time.OffsetDateTime (no Creators, like default constructor, exist): no String-argument constructor/factory method to deserialize from String value ('2021-04-14T20:17:28.681762Z')

from dgs-codegen.

srinivasankavitha avatar srinivasankavitha commented on July 19, 2024

What did you add to your list of classes? You do need to set up the scalar class and add it to runtime wiring as shown here:
https://netflix.github.io/dgs/scalars/

from dgs-codegen.

richardcresswell avatar richardcresswell commented on July 19, 2024

Yes, I'm actually using the ExtendedScalars like so:

@DgsComponent
public class DateTimeScalar {
    @DgsRuntimeWiring
    public RuntimeWiring.Builder addScalar(RuntimeWiring.Builder builder) {
        return builder.scalar(ExtendedScalars.DateTime);
    }
}

I also tried the long-form full implementation as shown in the link you sent, but got the same result.

It works fine when running the Application but I can't seem to get it to work in a unit test. I think that it's something along the lines of what @umesh-kushwaha reported originally where it's not being properly registered by the framework, but I can't figure out which class needs to be instantiated. I'm loading the DgsAutoConfiguration.class and my local DateTimeScalar.class.

Thank you for your help!

from dgs-codegen.

richardcresswell avatar richardcresswell commented on July 19, 2024

How does the jackson mapper in DefaultDgsQueryExecutor.kt know about our custom scalar types?

I'm having this problem when I try to deserialize the json back to an object using dgsQueryExecutor.executeAndExtractJsonPathAsObject.

from dgs-codegen.

richardcresswell avatar richardcresswell commented on July 19, 2024

I was able to reproduce this in the java example and created a new issue here.

from dgs-codegen.

srinivasankavitha avatar srinivasankavitha commented on July 19, 2024

Ok, thanks for the details. Will close this issue in that case and look into the new issue you opened.

from dgs-codegen.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.