Hallo,
ich bin neu im Bereich Web-Anwendungen mit Java.
Hinsichtlich meiner Bachelorarbeit, möchte ich mich dem Thema REST und Java-Servlets mit kleineren Beispielen nähern.
Ich hoffe, ich bin hier im richtigen Unterforum gelandet.
Erstmal eine kurze Beschreibung meines Problems:
Ich habe ein Servlet erstellt, das sowohl eine Antwort im XML- als auch im JSON-Format zurückgeben soll.
Die Rückgabe des XML-Formats funktioniert wunderbar. Beim JSON-Format bekomme ich jedoch einen "500 - Internal Server Error".
Kurz ein paar Randdaten zu meinem System:
Ich habe den Tomcat 7 auf meinem Raspberry Pi eingerichtet und greife über die URL "http://PI-IP:8080" auf den Tomcat zu. Bei dem Aufruf erhalte ich auch die "It works!"-Meldung.
Ich habe die Jersey-Implementierung der Java REST-API über die .jar-Archive eingebunden.
Ich weiß nicht, ob es was zur Sache tut, aber das Verzeichnis auf meinem Server sieht wie folgt aus:
Das Servlet ist wie folgt aufgebaut:
Ich habe das auf zwei Arten getestet:
Wie oben schon angedeutet, habe ich jeweils die korrekte XML-Struktur bekommen und bei dem JSON-Test jeweils einen "HTTP Status 500 - Internal Server Error".
Ich kann mir leider nicht erklären, woher der Fehler kommt. Habt ihr vielleicht eine Idee?
Danke schon mal und Grüße,
Naryxus
ich bin neu im Bereich Web-Anwendungen mit Java.
Hinsichtlich meiner Bachelorarbeit, möchte ich mich dem Thema REST und Java-Servlets mit kleineren Beispielen nähern.
Ich hoffe, ich bin hier im richtigen Unterforum gelandet.
Erstmal eine kurze Beschreibung meines Problems:
Ich habe ein Servlet erstellt, das sowohl eine Antwort im XML- als auch im JSON-Format zurückgeben soll.
Die Rückgabe des XML-Formats funktioniert wunderbar. Beim JSON-Format bekomme ich jedoch einen "500 - Internal Server Error".
Kurz ein paar Randdaten zu meinem System:
Ich habe den Tomcat 7 auf meinem Raspberry Pi eingerichtet und greife über die URL "http://PI-IP:8080" auf den Tomcat zu. Bei dem Aufruf erhalte ich auch die "It works!"-Meldung.
Ich habe die Jersey-Implementierung der Java REST-API über die .jar-Archive eingebunden.
Ich weiß nicht, ob es was zur Sache tut, aber das Verzeichnis auf meinem Server sieht wie folgt aus:
- ROOT
- WEB-INF
- classes
- "Java-Dateien"
- lib
- Jersey-Archive (unter anderem auch "jersey-json.jar"
- web.xml
- classes
- WEB-INF
Das Servlet ist wie folgt aufgebaut:
Java:
@Path("todo")
public class TodoResource {
@GET
@Path("json")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Todo getData() {
Todo todo = new Todo(...) //Erzeugen des Datums (Die Klasse Todo ist mit "@XMLRootElement" getaggt)
return todo;
}
}
Ich habe das auf zwei Arten getestet:
- Ich habe jeweils einen MediaType entfernt und den Pfad im Browser aufgerufen
- Ich habe über den mitgelieferten ClientConfig von Jersey einen Testclient erstellt, in dem ich einmal XML und einmal JSON fordere:
Java:
String answer = target.path("rest").path("todo/json").request().accept(MediaType.APPLICATION_XML/*JSON*/).get(String.class);
Wie oben schon angedeutet, habe ich jeweils die korrekte XML-Struktur bekommen und bei dem JSON-Test jeweils einen "HTTP Status 500 - Internal Server Error".
Ich kann mir leider nicht erklären, woher der Fehler kommt. Habt ihr vielleicht eine Idee?
Danke schon mal und Grüße,
Naryxus