Tutorials  /  JavaScript

Spring REST XML und JSON Beispiel

Ccentron Redaktion · Januar 2024 ·3 Min. Lesezeit ·JavaScript, Tutorial

Vor einiger Zeit schrieb ich einen Artikel über Spring REST JSON und erhielt viele Kommentare mit der Frage, wie das Programm geändert werden kann, um XML zu unterstützen. Ich erhielt auch einige E-Mails mit der Frage, wie man die Anwendung sowohl XML als auch JSON unterstützen lässt.

Spring REST XML und JSON

Führen Sie nun folgende Änderungen in der Spring Bean-Konfigurationsdatei durch.

1. Definieren Sie einen Bean vom Typ Jaxb2RootElementHttpMessageConverter

Code
<beans:bean>
</beans:bean>

2. Fügen Sie den konfigurierten Bean zum RequestMappingHandlerAdapter hinzu

Code
<beans:bean>
<beans:property name="messageConverters">
    <beans:list>
        <beans:ref bean="jsonMessageConverter"/>
        <beans:ref bean="xmlMessageConverter"/>
    </beans:list>
</beans:property>
</beans:bean>

Nach den oben genannten Änderungen sieht unsere finale Spring-Bean-Konfigurationsdatei wie folgt aus. servlet-context.xml

Code
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="https://www.springframework.org/schema/mvc"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="https://www.springframework.org/schema/beans"
    xmlns:context="https://www.springframework.org/schema/context"
    xsi:schemaLocation="https://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
        https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
        https://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- DispatcherServlet Context: definiert die Anfrageverarbeitungsinfrastruktur dieses Servlets -->
    <!-- Aktiviert das Spring MVC @Controller-Programmiermodell -->
    <annotation-driven />
    <!-- Verarbeitet HTTP-GET-Anfragen für /resources/**, indem statische Ressourcen im Verzeichnis ${webappRoot}/resources effizient bereitgestellt werden -->
    <resources mapping="/resources/**" location="/resources/" />
    <!-- Löst Ansichten aus, die von @Controllers zur Darstellung ausgewählt wurden, zu .jsp-Ressourcen im Verzeichnis /WEB-INF/views -->
    <beans:bean>
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
    </beans:bean>
    <!-- Konfiguriert das Plugin für JSON als Anfrage- und Antwortverarbeitung im Methodenhandler -->
    <beans:bean>
        <beans:property name="messageConverters">
            <beans:list>
                <beans:ref bean="jsonMessageConverter"/>
                <beans:ref bean="xmlMessageConverter"/>
            </beans:list>
        </beans:property>
    </beans:bean>
    <!-- Konfiguriert den Bean, um JSON in POJO umzuwandeln und umgekehrt -->
    <beans:bean>
    </beans:bean>    
    <beans:bean>
    </beans:bean>
    <context:component-scan base-package="com.journaldev.spring.controller" />
</beans:beans>

Wir wissen, dass für das Arbeiten mit JAXB-Marshalling für eine Klasse, diese mit der Annotation @XmlRootElement annotiert werden muss. Fügen Sie dies also unserer Employee-Modellklasse hinzu. Employee.java

Code
@XmlRootElement
public class Employee implements Serializable{
//keine Änderung im Code
}

Das war's, wir sind FERTIG. Unsere Spring-Anwendung wird sowohl JSON als auch XML unterstützen. Sie wird sogar XML-Anfragen mit JSON-Antwort und umgekehrt unterstützen. Unten sind einige Screenshots, die dies in Aktion zeigen. HINWEIS: Ich verwende für diese Tests die Postman Chrome-Anwendung, Sie können aber jeden beliebigen REST-Client verwenden.

1. XML-Antwort

Stellen Sie sicher, dass Sie den Accept-Header als „application/xml“ übergeben.

Spring rest xml

2. JSON-Antwort

Stellen Sie sicher, dass Sie den Accept-Header als „application/json“ übergeben.

Spring rest json

3. XML-Anfrage mit JSON-Antwort

Stellen Sie sicher, dass der Accept-Header „application/json“ und der Content-Type-Header „text/xml“ ist, wie in den folgenden Bildern gezeigt.

Spring rest xml json Spring rest xml json
VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

Fazit

Das ist alles für das Spring Restful-Webdienste-Beispiel zur Unterstützung von sowohl XML als auch JSON. Sie können sehen, wie einfach es ist, das Spring-Framework zu erweitern, dies ist einer der Hauptgründe für die Beliebtheit des Spring-Frameworks.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren