2009-06-18 48 views
2

我想爲我的Java Google App Engine程序創建一個REST接口。我想我會從我的POJOS生成一些XML開始。但是,似乎XStream被GAE的限制所困擾。POJO到Google App Engine中的XML字符串?

我可以使用什麼來在Google App Engine中生成XML字符串?

謝謝。

編輯1: 這裏是例外的開頭:

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

什麼是禁止XStream的限制?如果你告訴我們,也許我們可以建議一個不會受到同樣限制的圖書館。 – skaffman 2009-06-18 08:38:11

+0

順便說一下,Spring-WS使用術語POX來表示「Plain old XML」..... POJO to POX ....我很喜歡它。 – skaffman 2009-06-18 08:38:49

+0

更新後發佈包含「SerializablePermission」錯誤。 – 2009-06-18 08:45:16

回答

1

的異常由java.io.SerializablePermission,根據的Javadoc這是用於允許引起:

的ObjectOutputStream或 ObjectInputStream的子類的實施來覆蓋 默認序列化或反串行化 分別 對象

XStream可能會在封面下使用Object流,並且不會受到此權限的侵犯理所當然的。

Google App Engine實際上是否有白名單,或只是一組受限制的權限? JAXB2不使用Object流,所以你真的嘗試過嗎?

1

出於同樣的限制(一個補丁正在進行不過)我最終使用org.json庫生產JSON。 JAXB似乎也不在白名單中。

1

嘗試Jersey - 它會通過REST爲您提供XML,JSON和更多內容;全部使用註釋方法。

它爲我,但也有一些注意事項:

herehere