2012-03-27 7 views
1

Ich erstelle einen Web-Service mit dem Struts2 REST-Plugin, das funktioniert super. Ich habe nur ein Problem mit den Entitätsnamen der XML-Ausgabe.Struts2 + REST-Plugin XML-Ausgabe

Ich habe ein Modell Klasse mit dem Namen „ModelClass“ im Paket „com.mycompany.implementation“ mit ein paar Eigenschaften und eine verschachtelte Klasse „NestedModelClass“ und die XML-Ausgabe wie folgt aussieht:

<com.mycompany.implementation.ModelClass> 
    ... 
    <com.mycompany.implementation.ModelClass_-NestedModelClass> 
     ... 
    </com.mycompany.implementation.ModelClass_-NestedModelClass> 
</com.mycompany.implementation.ModelClass>  

Wie kann ich den Namen der XML-Entität ändern, damit er ohne Paketname angezeigt wird - oder auch nur ein anderer Name?

Danke!

Antwort

1

Das Plugin "struts rest" verwendet XStream, um Ihre Modellklasse in XML zu serialisieren. Aktuelle XStream-Versionen unterstützen das Kommentieren von Klassen und Feldern zum Anpassen der Serialisierung. Leider verwendet das struts rest plugin eine ziemlich alte Version von XStream und ignoriert diese Anmerkungen.

Der einfachste Weg, um zu bekommen, was Sie wollen, ist Ihren eigenen ContentTypeHandler zu schreiben und diesen anstelle des Standard-Plugins zu verwenden. This blog beschreibt, wie man das macht.

+0

Die Blog-Website wurde gebrochen, aktualisiert. – neteinstein