HTTP 500 Interner Server Fehler in einem einfachen REST-basierten Programm. Verwirrt in GET und POST beim Empfangen / Senden der Antwort vom Server

8

Ich implementiere zum ersten Mal eine grundlegende Client-Server-Architektur mit REST-Diensten. Diesmal mache ich es komplizierter, indem ich einige Klassen und Dienste mit Klassenobjekten als Parameter zwischen Client und Server einbeziehe. Ich betreibe Server auf ApacheTomcat7. Es wird erfolgreich ausgeführt. Wenn ich meinen Klienten laufen lasse, gibt es mir Fehler: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error Ich versuchte, meinen Code zu debuggen, es scheint, dass ich Antwort nicht richtig empfange / sende. Ich weiß, dass es keine weise Idee ist, alle Klassen hier zu teilen, aber ich habe keine Wahl, da es meine Zeit sehr verschwendet hat. Jede Hilfe wird geschätzt. Danke im Voraus.

Das ist meine ImageProgress-Klasse. Diese Klasse ist sowohl auf dem Server als auch auf dem Client vorhanden.

%Vor%

HPCResponse ist die Klasse, deren Objekt als Serverantwort an den Client zurückgegeben wird. HPCResponse wird grundsätzlich das ImageProgress-Objekt zurückgeben, das mir das gewünschte Ergebnis liefert.

%Vor%

Es folgt die Serviceklasse vom Server mit dem Namen HpcService, die das HPCResponse-Objekt als Antwort zurückgibt. Wie Sie sehen können, akzeptiert die Methode startAnalysing das Objekt von HPCInfo. Beschreibung von HPCInfo ist auch unten angegeben.

%Vor%

HPCInfo-Klasse befindet sich auch auf Client und Server. HPCInfo-Klasse:

%Vor%

Und schließlich ruft mein Kunde den HPCService an.

%Vor%

Dies ist die vollständige Fehlerbeschreibung, die ich bekomme:

%Vor%     
sandeep.ganage 08.07.2015, 10:05
quelle

2 Antworten

12

Dies liegt wahrscheinlich daran, dass ImageProgress class keinen Standardkonstruktor (no-arg) hat. Dies wird von JAXB benötigt.

Eine Möglichkeit zum Debuggen von Dingen wie dieser besteht darin, ein einfaches ExceptionMapper zu erstellen, um nicht gemappte Ausnahmen abzufangen. Wenn es keinen Mapper gibt, wird die Ausnahme häufig auf die Container-Ebene übertragen, was uns lediglich einen generischen 500-Server-Fehler gibt (was meistens wenig hilft).

%Vor%

Dann registrieren Sie einfach den Mapper. Beim Ausführen eines einfachen Tests mit der Klasse ImageProgress wird beim Auslösen der Ausnahme der Stacktrace gedruckt, und Sie können die Ausnahmebedingungsnachricht

sehen
  

... ImageProgress hat keinen no-arg Standardkonstruktor

    
Paul Samsotha 08.07.2015, 10:23
quelle
0

Fügen Sie diese Codezeile vor class HPCResponse :

hinzu %Vor%     
Daya sreenivas 16.05.2017 14:29
quelle

Tags und Links