2009-06-18 6 views
2

Ich möchte eine REST-Schnittstelle für mein Java Google App Engine-Programm erstellen. Ich dachte, ich würde damit anfangen, etwas XML von meinem POJOS zu generieren. Es scheint jedoch, dass XStream von GAE Einschränkungen gebissen wird.POJO zu einer XML-Zeichenfolge in Google App Engine?

Was kann ich verwenden, um eine XML-Zeichenfolge in Google App Engine zu generieren?

Danke.

Edit 1: Dies ist der Anfang der Ausnahme:

javax.servlet.ServletContext log: Exception while dispatching incoming RPC call 
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract java.lang.String com.mydomain.client.ObjectService.sendObject(com.mydomain.client.models.myobject)' threw an unexpected exception: java.security.AccessControlException: access denied (java.io.SerializablePermission enableSubclassImplementation) 
+1

Was sind die Einschränkungen, die XStream verbieten? Wenn Sie uns das sagen, können wir vielleicht eine Bibliothek vorschlagen, die nicht denselben Beschränkungen unterliegt. – skaffman

+0

Übrigens verwendet Spring-WS den Begriff POX für "Plain old XML" ..... POJO to POX .... Ich mag es sehr. – skaffman

+0

Aktualisierter Beitrag mit dem Fehler "SerializablePermission". –

Antwort

1

Die Ausnahme von einem java.io.SerializablePermission verursacht wird, die das nach Javadoc- zum Ermöglichen ist:

Subklasse Umsetzung Object oder Object zu überschreiben die Standardserialisierung oder Deserialisierung bzw. Objektströme unter der Decke von Objekten

XStream verwenden könnten, und fiel Foul von dieser Erlaubnis nicht zu sein gewährt.

Verfügt Google App Engine tatsächlich über eine Whitelist oder nur eingeschränkte Berechtigungen? JAXB2 verwendet keine Objektströme, also hast du das tatsächlich versucht?

+0

Whitelist: http://code.google.com/appengine/docs/java/jrewhitelist.html –

1

Für die gleiche Einschränkung (ein Patch jedoch im Gang ist) ich JSON mit org.json Bibliothek beendet produzieren. Auch JAXB scheint nicht in der Whitelist zu sein.

1

Versuchen Sie Jersey - es gibt Ihnen XML, JSON und vieles mehr über REST; Alle verwenden annotierte Methoden.

Es funktioniert für mich, aber es gibt einige Einschränkungen:

Siehe here und here

+0

Verwenden Sie Jersey in der Google App Engine? –