[JAVA] Wenn Sie irgendwo einen Fehler melden möchten, wenn Sie graphql-spring-boot mit Spring Boot verwenden

Ich konnte es mit @ RestControllerAdvice nicht bekommen und wollte ein bisschen detailliertere Informationen als @ ExceptionHandler.

Umgebung


val spring_version=2.2.2.RELEASE

implementation("com.graphql-java-kickstart:graphql-spring-boot-starter:6.0.0")
implementation("org.springframework.boot:spring-boot-starter:$spring_version")
implementation("org.springframework.boot:spring-boot-starter-web:$spring_version")

Codebeispiel

Es scheint gut, "Map <String, ExecutionStrategy>" in der Bean zu registrieren.

@Configuration
class GraphQLConfig {
    @Bean
    fun executionStrategies(): Map<String, ExecutionStrategy> {
        val customDataFetcherExceptionHandler = CustomDataFetcherExceptionHandler
        return mapOf(
                "queryExecutionStrategy" to AsyncExecutionStrategy(customDataFetcherExceptionHandler),
                "mutationExecutionStrategy" to AsyncSerialExecutionStrategy(customDataFetcherExceptionHandler)
        )
    }

    class CustomDataFetcherExceptionHandler: SimpleDataFetcherExceptionHandler() {
        override fun onException(handlerParameters: DataFetcherExceptionHandlerParameters): DataFetcherExceptionHandlerResult {
            //Benachrichtigen Sie mich nett
            //Wenn Sie Informationen auf niedrigerer Ebene wünschen
            // handlerParameters.dataFetchingEnvironment.getContext<GraphQLServletContext>().Es scheint, dass Sie es mit httpServletRequest bekommen können.
            return super.onException(handlerParameters)
        }
    }
}

Ich bin mir immer noch nicht sicher, ob "AsyncExecutionStrategy" und "AsyncSerialExecutionStrategy" in Ordnung sind, aber im Moment kann ich den Fehler auf etwas wie "Slack" überspringen.

Bitte kommentieren Sie, ob es einen besseren Weg gibt.

Recommended Posts

Wenn Sie irgendwo einen Fehler melden möchten, wenn Sie graphql-spring-boot mit Spring Boot verwenden
ProxyFactory ist praktisch, wenn Sie AOP mit Spring testen möchten!
Unbekannter Fehler in Zeile 1 von pom.xml bei Verwendung von Spring Boot in Eclipse
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen
Wenn Sie InputStream in JDBI3 binden möchten
Wenn Sie die Spring Boot + Thymeleaf-Verarbeitung trennen möchten
Wenn Sie Annotation in Java 8 dynamisch ersetzen möchten
Passen Sie die Anzeige an, wenn im Spring Boot ein Fehler wie 404 Not Found auftritt
Abrufen von Fehlerinformationen mithilfe von DefaultErrorAttributes und ErrorAttributeOptions in Spring Boot 2.3
So steuern Sie Transaktionen in Spring Boot ohne Verwendung von @Transactional
Vorsichtsmaßnahmen bei der Verwendung von Spring AOP mit Jersery-Ressourcenklassen
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
Ich möchte die Standardfehlermeldung von Spring Boot steuern
Die Geschichte des Übergangs von Spring Boot 1.5 zu 2.1
Fehler bei der Implementierung bei der Implementierung der Spring-Validierung
Änderungen bei der Migration von Spring Boot 1.5 auf Spring Boot 2.0
Änderungen bei der Migration von Spring Boot 2.0 zu Spring Boot 2.2
Mein Memorandum, dass ich ValidationMessages.properties UTF8 in Spring Boot erstellen möchte
Javaw.exe Fehler beim Starten von Spring Boot (STS)
Bei der Einführung von JOOQ in Spring Boot wurde eine Geschichte behandelt, die behandelt wurde, weil bei Liquidbase ein Fehler aufgetreten ist
[Fehlerbehebung] Tritt auf, wenn versucht wird, mit Docker eine Umgebung für den Frühling zu erstellen
Zusammenfassung beim Versuch, Solr in Java zu verwenden und eine Fehlermeldung zu erhalten (Solr 6.x)
407 Fehler beim Versuch, über einen authentifizierten Proxy in Java auf die HTTPS-Site zuzugreifen
Bei Verwendung einer Liste in Java wird java.awt.List ausgegeben und ein Fehler tritt auf
Ich möchte eine E-Mail in Java senden.
Ein Hinweis, wenn Sie Tupel in Java möchten
Wenn Sie die Methode außerhalb verwenden möchten
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Einführung in Spring Boot + In-Memory Data Grid
[Swift] Verwenden Sie nonzeroBitCount, wenn Sie in Swift popcnt möchten
So binden Sie mit einer Eigenschaftendatei in Spring Boot
Wenden Sie Twitter Bootstrap 4 mithilfe von Webjars auf Spring Boot 2 an
[Ruby] Wenn Sie mehrere Zeichen ersetzen möchten
[Rails] Was tun, wenn Sie einen Fehler generieren möchten, der nicht behoben werden kann, wenn externe Schlüsselbeschränkungen angewendet werden?
Ich möchte, dass Sie die Geschichte erzählen, dass der Fehler behoben wurde, als Sie das Ladegerät in die Ecke Ihres Kopfes gestochen haben
Ich möchte eine Verbindung herstellen, wenn eine Datenbank mit Spring und MyBatis erstellt wird
Bis Sie ein Spring Boot-Projekt in Intellij erstellen und an Github senden
Code, der verwendet werden soll, wenn Sie Json nur mit Standardbibliotheken in Java verarbeiten möchten
Dinge, die Sie bei der Verwendung der if-Anweisung beachten sollten
Ein Einführungsbuch zum Starten von Rails
Erweitern Sie Spring Boot DefaultErrorViewResolver, um Fehlerbildschirme dynamisch anzupassen
Verwendung von CommandLineRunner im Spring Batch von Spring Boot
Testen Sie die Klasse mit Feldinjektion im Spring-Boot-Test, ohne den Spring-Container zu verwenden
Bis Sie mit der Entwicklung mit Spring Boot in Eclipse 1 beginnen
Führen Sie swagger-ui in die in Spring Boot implementierte REST-API ein
Bis Sie mit der Entwicklung mit Spring Boot in Eclipse 2 beginnen
[Ruby + Rails] Wenn Sie sich zusammen mit der Benutzerregistrierung in der Mailchimp-Mailingliste registrieren möchten
So schreiben Sie in die Modellklasse, wenn Sie mit PlayFramework Binärdaten in der Datenbank speichern möchten
Ich möchte die maximale Dateigröße für das Hochladen von Dateien für jede URL in Spring Boot steuern
Wenn Sie Java-Bibliothekstests mit Spock in mehreren Modulen mit Gradle in Android Studio 3 implementieren möchten
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
Wenn Sie die Hauptzweiginformationen in dem aktuellen Zweig wiedergeben möchten, an dem Sie gerade arbeiten
Was tun, wenn die Fehlermeldung angezeigt wird, dass keine gültige Basis für Repo gefunden werden kann, wenn Sie im udemy-Kurs mit CentOS7 das Docker yum -y install verwenden?
Bei der Verwendung von nextInt, nextLine und substring ist ein Fehler aufgetreten.