You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
graphql.kickstart.servlet.context.DefaultGraphQLServletContext cannot be cast to class GraphqlCustomContext #351
I m trying to create a custom context as given below: @publicapi @threadsafe @SuppressWarnings("unchecked")
public class GraphqlCustomContext implements GraphQLServletContext {
private final ConcurrentMap<Object, Object> map;
private GraphqlCustomContext(ConcurrentMap<Object, Object> map){
this.map = map;
}
@Override
public Optional<Subject> getSubject()
{
return Optional.empty();
}
@Override
@NonNull
public DataLoaderRegistry getDataLoaderRegistry()
{
return null;
}
@Override
public List<Part> getFileParts(){
return null;
}
@Override
public Map<String, List<Part>> getParts(){
return null;
}
@Override
public HttpServletRequest getHttpServletRequest(){
return null;
}
@Override
public HttpServletResponse getHttpServletResponse(){
return null;
}
public void put(Object key, Object value) {
this.map.put(Assert.assertNotNull(key), Assert.assertNotNull(value));
}
public <T> T get(Object key) {
return (T) this.map.get(Assert.assertNotNull(key));
}
}
I am getting this error
2021-05-24 14:17:24 [https-jsse-nio-8443-exec-4] WARN n.g.e.SimpleDataFetcherExceptionHandler - Exception while fetching data (/getLatestLedgerTransactions) : class graphql.kickstart.servlet.context.DefaultGraphQLServletContext cannot be cast to class com.gs.txb.dataplatform.graphql.configuration.GraphqlCustomContext (graphql.kickstart.servlet.context.DefaultGraphQLServletContext and com.gs.txb.dataplatform.graphql.configuration.GraphqlCustomContext are in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @153f5a29)
For this line
GraphqlCustomContext context = (GraphqlCustomContext) env.getContext();
context.put("source",FAST_STORE);
I need to pass fields from parent to child data fetcher. In older version of graphql-java, we could use env.getExecutionContext().getVariables().put("source,FAST_STORE)
How can I do this in graphql-java-kickstart, apart from creating custom context?
Any Suggestions? @oliemansm
Activity
oliemansm commentedon Aug 19, 2021
You need to provide a custom context builder if you want to be able to use a custom context. See this sample how you can provide a custom context builder: https://github.com/graphql-java-kickstart/samples/blob/master/request-scoped-dataloader/src/main/java/graphql/servlet/examples/dataloader/requestscope/CustomGraphQLContextBuilder.java.